Pourquoi preg_replace me jette une erreur de "modificateur inconnu"? [dupliquer]
-
06-07-2019 - |
Question
Cette question a déjà une réponse ici:
Je continue à avoir cette erreur:
Avertissement: preg_match () [function.preg-match]: Inconnu modificateur 't' dans D: \ xampp \ htdocs \ administrateur \ composants \ com_smms \ functions \ plugin.php à la ligne 235
sur:
$PageContent = preg_replace($result->module_pregmatch, '', $PageContent);
Je fais un var_dump sur le $ résultat - > module_pregmatch et j’obtiens ce qui suit:
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)
Quelqu'un peut-il me dire ce que je fais mal, s'il vous plaît? Cela fait trop longtemps que je suis coincé dans cette erreur ...
La solution
Vous utilisez des barres obliques comme délimiteur de motif regex. / < title > (. *) < / title > / Ui '
ne fonctionnera pas ( < / titre >
comporte une barre oblique).
Vous devriez pouvoir échapper à la barre oblique ou utiliser un autre séparateur que le motif ne contient pas, par exemple
.'/<title>(.*)<\/title>/Ui' //(esacaping)
ou
'~<title>(.*)</title>~Ui' //different delimiter