[英]Why is str_replace() only replacing one instance of a character in a string?
我有一个较大的字符串变量,该变量是从排序规则为latin_swedish_ci的“ 文本”类型的数据库列中分配的。
因为它是ASCII格式,所以在将变量放入PDF生成脚本之前,需要替换所有非UTF-8字符。
众所周知,PDF使用的标准是邪恶的。 如果我使用普通的ASCII输入,它将变得疯狂并导致时空撕裂。
因此,为了防止对我们的宇宙造成任何损害,我需要帮助弄清楚为什么此str_replace()
函数仅替换一种字符类型,而忽略了该字符的任何重复
这是我的代码:
$tc = str_replace (array("\n", "£", "&"), array("<br/>", "£", "&"), $tc);
输入:
Terms & Conditions: Mandatory charge of £10 for cancellations.
VAT E&EO
输出:
Terms & Conditions: Mandatory charge of £10 for cancellations.
VAT E&EO
正如您在第二行的输出中看到的那样, str_replace()
不会更改“&”字符。
我想知道这是否是因为超过两行或类似内容。
因此,任何关于如何使功能按我希望的方式工作的想法都可以,否则,明天许多微黑洞将使您的谷物碗消失,那么您将醒来。
看来您要实现的目标可以使用以下两个功能来完成:
nl2br(htmlentities($tc));
好处是,如果您的$tc
变量将来会获得更多HTML实体,则您无需摆弄str_replace()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.