、ここでこのコードを持っている:PHPのstr_replace問題
$search = array('{POST}', '{post}');
$replace = $recent['body'];
$message = str_replace($search, $replace, html_entity_decode($params['post_html']));
$params[post_html']
はそれを取得した後、例えば、{POST}または{ポスト}定義のいずれかを持つユーザ入力を保持する変数は、このような可能性がありますofcourseのデコード:
<span class="upperframe">
<span></span>
</span>
<div class="roundframe dp_control_flow">
{POST}
</div>
<span class="lowerframe">
<span></span>
</span>
はとにかく、私はここに直面してる問題は、何らかの理由で、str_replace
も交換され、交換するパラメータ内{POST}
または{post}
文字列、次のとおりです。$recent['body']
これはどのように私はFIができ、起こるべきではありません交換する必要があるものの交換を実行しないようにするには{POST}
または{post}
?
私は、この関数がreplace変数内で置き換えを行うとは思いませんでした。 OUCH。これを回避する方法はありますか?代わりにpreg_replaceを使用する必要がありますか?もしそうなら、誰かがこれのための正規表現で私を助けることができますか?
みんなありがとう:)
あなたの配列には 'POST'と 'post'の両方が含まれていますので、どちらかがあればそれが置き換えられます。 – Drewdin
はい、なぜ置き換えパラメータ内で置き換えられますか?私には、それは主題のパラメタの中でのみ置き換えるべきです。私はちょうどそれらの1つに行くだろうと思う...とにかくありがとう。 – SoLoGHoST
私はあなたがそれを使ってpreg_matchを行うことができると思いますが、それは奇妙な動作のように見えます – Ben