我在做簡單的str_replace
時遇到了問題。
我想從字符串中刪除所有的逗號,這是可行的。但是當我試圖再次改變字符串時,逗號會以某種方式重新出現。我重構了我的代碼,以確保我沒有造成這種情況。用HTML實體替換的字符重新出現
反正這裏是我的代碼。任何人都可以發現一個錯誤?
$delim=remDelim(fgets($fo));
# echo 'before : '.htmlspecialchars($delim);
$delime =str_replace(",",",",$delim);
echo 'after : '.htmlspecialchars($delime);
$delimed = str_replace("<","",$delime);
echo $delimed.'<br />';
example output:
Jose, jr to Jose, jr to Jose, jr
它就像我的字符串被以某種方式未被轉換。我會說,這很可能是我混淆了名字,並使用第一個字符串來製作最後一個字符串。但唉,我可以看到情況並非如此。
至少有一次我想每個人都被這個一個:)欺騙。 – kapa 2012-02-14 22:24:24
他的回答很好。唯一的區別是用最後一個'echo'你不使用'htmlspecialchars()'。打印的內容是',',但它是HTML,所以它顯示爲逗號。在瀏覽器中檢查HTML源代碼。 [或者查看你的代碼的演示。](http://codepad.viper-7.com/gY45Dr) – kapa 2012-02-14 22:53:55
它不是在一個12MB頁面上工作(可能是Firefox或者apache/php,因爲它不好用處理大頁面,導致凍結aka無響應,並佔用2GB的ram剛剛加載此頁面)。我查看源,不在那裏。然後我嘗試了一個12 kb的頁面。這最終顯示了,的來源。那是我之前從電腦裏看到的最詭異的行爲。這是有道理的,爲什麼它總是爲答對的ppl工作(使用一行輸入= <1kb)。 – YoYoMa 2012-02-14 23:39:22