preg_replace가 왜 "알 수없는 수정 자"오류를 던지는가? [복제하다
-
06-07-2019 - |
문제
이 질문은 이미 여기에 답이 있습니다.
나는이 오류를 계속 얻는다 :
경고 : preg_match () [function.preg-match] : d : xampp htdocs administrator components com_smms functions plugin.php 235
에:
$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)
누군가 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까? 이 오류가 너무 오래 걸렸습니다 ...
해결책
REGEX 패턴 구분 매력으로 포워드 슬래시를 사용하고 있습니다. /<title>(.*)</title>/Ui'
작동 안 할 것이다 (</title>
전방 슬래시가 있습니다).
예를 들어 앞쪽 슬래시를 피하거나 패턴 내에 포함되지 않은 다른 구분기를 사용할 수 있어야합니다.
'/<title>(.*)<\/title>/Ui' //(esacaping)
또는
'~<title>(.*)</title>~Ui' //different delimiter
제휴하지 않습니다 StackOverflow