-1

こんにちは、私はこのコードを持っていますが、$pattern 変数を渡すときに preg_match に問題があります。

$pattern = htmlspecialchars($_POST['pregmatch']);
$pattern = "'".$pattern."'";
preg_match($pattern, $content, $m);

これ/<span class=\"product_title\">(.*)<\/span>/ を $_POST['pregmatch'] で指定すると、pregmatch は NULL を返します。

コードをこれに変更すると

//$pattern = htmlspecialchars($_POST['pregmatch']);
//$pattern = "'".$pattern."'";
preg_match('/<span class=\"product_title\">(.*)<\/span>/', $content, $m);

魅力のように機能します。

それで、ここでの取引は何ですか?スラッシュはこの問題を引き起こしますか?

前もって感謝します。

4

2 に答える 2

2

あなたの追加の行の両方が問題を引き起こしているようです...あなたがそうするなら:

preg_match($_POST['pregmatch'], $content, $m); 

おそらく、望ましい結果が得られるでしょう。

于 2012-09-05T22:57:15.647 に答える
2

htmlspecialchars山かっこ<および>を入力から HTML エスケープ&lt;およびに変換します&gt;。したがって、パターンは次のようになります。

/&lt;span class=\"product_title"&gt;(.*)&lt;\/span&gt;/

$contentそれがまだ生の HTML である場合、これは一致しません。

また、パターンの周りに追加する'と、それが台無しになります。

 $pattern = "'".$pattern."'"; 

その後、2 つの区切り文字がありました。

'/&lt;span class="product_title"&gt;(.*)&lt;\/span&gt;/'

最良のアイデアは、var_dump変数の状態が不明な場合に使用することです。error_reportingそして、何かがうまくいかないときはいつでも有効にしてください。

于 2012-09-05T23:54:42.157 に答える