我有一个大型字符串变量,该字符串变量是从“ Text”类型的数据库列中分配的,带有Collation 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()
不会更改&符号。
我想知道这是因为它超过两行还是类似的东西。
所以任何想法如何让这个功能按照我想要的方式工作,否则你很快就会醒来,许多Micro Blackholes会在明天消失你的一碗麦片。
答案 0 :(得分:3)
看起来你想要实现的目标可以使用这两个函数来完成:
nl2br(htmlentities($tc));
好处是,如果您的$tc
变量将来再获得更多HTML实体,则无需使用str_replace()
。