簡體   English   中英

為什么str_replace()僅替換字符串中一個字符的一個實例?

[英]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/>", "&pound;", "&amp;"), $tc);

輸入:

Terms & Conditions: Mandatory charge of £10 for cancellations.    
VAT E&EO

輸出:

Terms &amp; Conditions: Mandatory charge of &pound;10 for cancellations.
VAT E&EO

正如您在第二行的輸出中看到的那樣, str_replace()不會更改“&”字符。

我想知道這是否是因為超過兩行或類似內容。

因此,任何關於如何使功能按我希望的方式工作的想法都可以,否則,明天許多微黑洞將使您的谷物碗消失,那么您將醒來。

看來您要實現的目標可以使用以下兩個功能來完成:

nl2br(htmlentities($tc));

好處是,如果您的$tc變量將來會獲得更多HTML實體,則您無需擺弄str_replace()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM