はIAMにpreg_replaceを使用して、私のhtml sidewideにアンパサンドを交換しようとしているが、問題はそれがインラインjavascriptの& &などのJavaScript URLを壊すということです?ページ=テスト& ID = 1のPHPにpreg_replace正規表現先読み
今、私はこれを持っていますコードは動作します
$amp_replace = array();
$amp_replace[0] = '/(?<=\s)&(?!&)(?!#?[a-z0-9]+;)/';
$amp_replace[1] = '/(?<!&)&(?=\s)/';
$skin = preg_replace($amp_replace, '&', $skin);
スペースが左右にある場合はアンパサンドを置き換えます。 2つのアンパサンドが連続している場合(javascriptの場合)またはhtmlエンティティが続く場合は置き換えないでください。
しかし、私はここでむしろ不必要なロジックを見つける。また、そのようなテスト&テストの場合、アンパサンドを置き換えません。
私は正規表現の専門家がいないので、これはかなり長い時間がかかりましたので、ここでもう一度助けを求めていると思いました。
javascriptスクリプトタグ内にない場合は、すべてのアンパサンドを置き換える方がよいでしょうか?私はそれを試してみましたが、本当の成功はありませんでした。
どのようにアーカイブすることができますか? はありがとうのような単純ではない何か、なぜ
どのようにこれらは '&'最初の場所でそこに手に入れた作業
?むしろその問題を修正するべきではありませんか? –
ユーザーが投稿したコンテンツ。私はアンパサンド出力を修正するために各PHPファイルに書き込むことで修正できることを知っています。しかし、この特別な場合、私はそれを必要としません。私のppコーディングが十分に大きくなるにつれて、私はむしろこれについて1つのグローバルなステートメントを持ちたいと思っています。私のすべてのHTMLを見て、スクリプトタグ内でない場合は置き換えてください – Basti