[英]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.