preg_replaceが“不明な修飾子”を投げる理由エラー? [複製]
-
06-07-2019 - |
質問
この質問にはすでに回答があります:
このエラーが引き続き発生します:
警告:preg_match() [function.preg-match]:不明 修飾子「t」 D:\ xampp \ htdocs \ administrator \ components \ com_smms \ functions \ plugin.php 235行目
on:
$PageContent = preg_replace($result->module_pregmatch, '', $PageContent);
$ result-> module_pregmatchでvar_dumpを実行すると、次の結果が得られます。
string '/<title>(.*)</title>/Ui' (length=23)
string '/<meta[^>]*name=["|\']description["|\'][^>]*content=["|\'](.*)["|\']\s*\/>/Ui' (length=77)
string '/<meta[^>]*name=["|\']keywords["|\'][^>]*content=["|\'](.*)["|\']\s*\/>/Ui' (length=74)
string '/<meta[^>]*name=["|\']author["|\'][^>]*content=["|\'](.*)["|\']\s*\/>/Ui' (length=72)
string '/<meta[^>]*name=["|\']copyright["|\'][^>]*content=["|\'](.*)["|\']\s*\/>/Ui' (length=75)
string '/<meta[^>]*name=["|\']robots["|\'][^>]*content=["|\'](.*)["|\']\s*\/>/Ui' (length=72)
string '/<meta[^>]*http=equiv=["|\']content-language["|\'][^>]*content=["|\'](.*)["|\']\s*\/>/Ui' (length=88)
string '/<meta[^>]*http-equiv=["|\']content-type["|\'][^>]*content=["|\'](.*)["|\']\s*\/>/Ui' (length=84)
string '/<link[^>]*href=["|\'](.*)["|\'][^>]*rel=["|\']shortcut[^>]*icon["|\'][^>]*type=["|\']image\/x-icon["|\']\s*\/>/Ui' (length=114)
string '/<link[^>]*href=["|\'](.*)["|\'][^>]*rel=["|\']alternate["|\'][^>]*type=["|\']application\/rss\+xml["|\'][^>]*title=["|\'](.*)["|\'][^>]\/>/Ui' (length=142)
string '/<link[^>]*href=["|\'](.*)["|\'][^>]*rel=["|\']alternate["|\'][^>]*type=["|\']application\/atom\+xml["|\'][^>]*title=["|\'](.*)["|\'][^>]\/>/Ui' (length=143)
誰かが私が間違っていることを教えてもらえますか?私はこのエラーに長時間かかりすぎています...
解決
正規表現パターン区切り文字としてスラッシュを使用しているため、 /&lt; title&gt;(。*)&lt; / title&gt; / Ui '
は機能しません(&lt; / title&gt;
にはスラッシュがあります)。
たとえば、スラッシュをエスケープするか、パターンに含まれていない別の区切り文字を使用する必要があります。
'/<title>(.*)<\/title>/Ui' //(esacaping)
または
'~<title>(.*)</title>~Ui' //different delimiter
所属していません StackOverflow