私は現在、スマートな出力フィルターを使用して、Web サイト内の特定の文字列 (html を含む) を動的に置き換える置換ツールに取り組んでいます。
置換を行うために、PHP のstr_ireplace
メソッドを使用しています。このメソッドは、置換されるはずのコードと置換コードをデータベースから読み取り、その結果を (出力フィルターを使用して) smarty 出力に渡します。以下のように。
$tpl_source = str_ireplace($replacements['sourceHTML'], $replacements['replacementHTML'], $tpl_source);
問題は、私の開発サーバーでは問題なく動作しますが、ライブサーバーにアップロードすると、置換が失敗することがあるということです。ただし、同じ置換は私の開発バージョンでも問題なく機能します。いくつかの調査とグーグル検索の後、この問題に関して私が知ることができることはあまりありませんでした. 私の質問は、 の動作に影響を与える可能性str_replace
のあるものは何ですか?
ありがとう
置換例で編集:
$htmlsource = file_get_contents('somefile.html');
$newstr = str_replace('<a href="http://www.somelink">Some text</a>', 'sometext', $htmlsource); // the text to be replaced does exist in the html source
交換に失敗します。確認したところ、">の組み合わせで問題が発生しているように見えます。しかし、組み合わせだけです。(")のみを変更しようとすると機能し、(>)のみを変更しようとすると機能します。