シンプルな操作をしています。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
私のような文字列は何とか変換されていません。私は名前が混ざっている可能性が最も高いと言い、最後の文字列を作るために最初の文字列を使いました。しかし、うーん、私はそれが事実でないことがわかります。
が少なくとも一度、私は誰もがこの1 :)によってだまさます推測する - のいずれか(FirefoxでU例えばCTRL)ページのソースをプレーンテキストモード(
header('Content-type: text/plain');
)にブラウザを強制する、または表示します。 – kapa彼の答えは良いです。唯一の違いは、最後の 'echo'では' htmlspecialchars() 'を使わないことです。印刷されるのは ','ですが、HTMLであるためカンマで表示されます。ブラウザのHTMLソースを確認してください。 [または、このコードのデモを確認してください。](http://codepad.viper-7.com/gY45Dr) – kapa
12MBのページで動作しませんでした(おそらくFirefoxのバグやApache/PHPがうまくいかない大きなページを処理すると応答が停止し、このページをロードするだけで最大2GBのRAMが必要になります)。私はソースを見た,はありませんでした。それから私は12kbページで試しました。これは最終的にソースに,を示しました。それは私が前にコンピュータから見た不思議な振る舞いでした。そして、これは回答したppl(なぜなら、1行の入力= <1kbを使用して)が常に働いていた理由になります。 – YoYoMa