0

誰でもこのエラーの解決策を見つけることができますか?

     $str=  trim(strip_tags($str));

$str = preg_replace("'<style[^>]*>.*</style>'siU",'',$str);

    $patterns = array();
$patterns[0] = '&nbsp; ';
$patterns[1] = ' &nbsp;';
$patterns[2] = '&nbsp;';
$replacements = array();
$replacements[0] = '';
$replacements[1] = '';
$replacements[2] = ' ';

$str    =   preg_replace($patterns, $replacements, $str);

このエラーを示しています。

メッセージ: preg_replace() [function.preg-replace]: 終了区切り文字 '&' が見つかりません

-アルン

4

2 に答える 2

0

パターンの最初の文字は区切り文字として解釈され、現在 PHP は & を区切り文字として使用したいと考えています。最初の正規表現では、区切り文字は', BTW でした。あなたが本当に欲しいのは ではないと思いますが'&nbsp;''/&nbsp;/'(たとえばパターン2の場合)、現在/は区切り文字です(正規表現自体の一部ではありません)。ところで、最初の正規表現も正しくないようです。おそらく

'<style[^>]*>[^<]*</style>'

そうしないと、正規表現がドキュメント全体の最初のタグと最後のタグに一致する可能性があります。

于 2011-02-28T14:50:22.790 に答える
0

エラーコードに anwser があります。正規表現が機能するには区切り文字が必要です。

そして、 str_replace を使用する必要があります&nbsp;

于 2011-02-28T14:42:14.687 に答える