Почему preg_replace выдает мне ошибку «Неизвестный модификатор»?[дубликат]
-
06-07-2019 - |
Вопрос
На этот вопрос уже есть ответ здесь:
Я продолжаю получать эту ошибку:
Предупреждение:preg_match () [function.preg-match]:Неизвестный модификатор
на:
$PageContent = preg_replace($result->module_pregmatch, '', $PageContent);
Я делаю var_dump для $result->module_pregmatch и получаю следующее:
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)
Может кто-нибудь сказать мне, что я делаю неправильно?Я слишком долго застрял на этой ошибке...
Решение
В качестве разделителя шаблона регулярного выражения вы используете косую черту, поэтому /<title>(.*)</title>/Ui'
не будет работать (</title>
есть косая черта).
У вас должна быть возможность избежать косой черты или использовать другой разделитель, который не содержится в шаблоне, например
'/<title>(.*)<\/title>/Ui' //(esacaping)
или
'~<title>(.*)</title>~Ui' //different delimiter
Не связан с StackOverflow