Php 为什么str_replace()只替换字符串中字符的一个实例?
我有一个大的字符串变量,它是从一个类型为“Text”的数据库列中分配的,该列的排序规则为拉丁文 因为它是ASCII格式的,所以在将变量放入PDF生成脚本之前,我需要替换所有非UTF-8字符 众所周知,PDF使用的标准是邪恶的。如果我使用普通的ASCII输入,它将变得疯狂,并导致时空撕裂 因此,为了防止对我们的宇宙造成更多的伤害,我需要帮助弄清楚为什么这个Php 为什么str_replace()只替换字符串中字符的一个实例?,php,str-replace,Php,Str Replace,我有一个大的字符串变量,它是从一个类型为“Text”的数据库列中分配的,该列的排序规则为拉丁文 因为它是ASCII格式的,所以在将变量放入PDF生成脚本之前,我需要替换所有非UTF-8字符 众所周知,PDF使用的标准是邪恶的。如果我使用普通的ASCII输入,它将变得疯狂,并导致时空撕裂 因此,为了防止对我们的宇宙造成更多的伤害,我需要帮助弄清楚为什么这个str_replace()函数只替换一个字符类型,而忽略这个字符的任何重复 这是我的代码: $tc = str_replace (array("
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
输出:
$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()
这两个函数似乎可以实现您想要实现的目标:
nl2br(htmlentities($tc));
这样做的好处是,如果您的
$tc
变量将来获得更多的HTML实体,您就不必再摆弄str_replace()
I concure。完美的解决方案。我更喜欢使用这些代码,只有在没有其他选择的情况下才进行替换。我从来没有使用过这个函数。不知何故,我觉得我的生活现在压力会小得多!:)我同意。完美的解决方案。我更喜欢使用这些代码,只有在没有其他选择的情况下才进行替换。我从来没有使用过这个函数。不知何故,我觉得我的生活现在压力会小得多!:)如前所述,有内置函数来处理html实体。除此之外,strtr
是对这种字符串替换最有意义的函数。如前所述,有内置函数来处理html实体。除此之外,strtr
是对这种字符串替换最有意义的函数。。