次の2つの正規表現があり、それらが機能しない理由が何であるか疑問に思っています:
$regex='#<br><h1 class="band name">(.+?)</h1><span class="bandinfotop">#';
preg_match($regex,$content,$match);
$name=$match[1];
それが機能する場合、選択された文字列は、たとえば **Häuptling と "(R) Brechende Zäune" のようなものです。それが機能する例は「!n:fact」です。
今、正規表現を台無しにする文字列内の特定の兆候が原因であるかどうか疑問に思っていますか? ウムラウトのような?
コードの後半で私はこれをやっています:
$name=strip_tags($name);
$name=htmlentities($name,null,"UTF-8");
if($name=="") $name="NULL";
一致するものが見つからなかったものについては、「NULL」がエコーされます。
助けてくれてありがとう!チャールズ
EDIT 1 最後の 3 行のようです - 最後の行の前の 2 行をコメントアウトすると、正常に動作します。
解決策 htmlentities() でパラメータ null と「UTF-8」を削除すると、何とか機能しました。誰かが理由を知っていますか?