J'ai une expression régulière qui regarde le contenu html pour certains mots-clés qui fonctionnaient, mais qui échoue maintenant et je ne comprends pas pourquoi. (L'expression régulière est venue de this thread.)l'expression régulière find-and-replace-in-html échoue
$find = '/(?![^<]+>)(?<!\w)(' . preg_quote($t['label']) . ')\b/s';
$text = preg_replace_callback($find, 'replaceCallback', $text);
function replaceCallback($match) {
if (is_array($match)) {
$htmlVersion = $match[1];
$urlVersion = urlencode($htmlVersion);
return '<a class="tag" rel="tag-definition" title="Click to know more about ' . $htmlVersion . '" href="?tag=' . $urlVersion . '">' . $htmlVersion . '</a>';
}
return $match;
}
Les points de message d'erreur à l'appel preg_replace_callback et dit:
Warning: preg_replace_callback() [function.preg-replace-callback]: Unknown modifier 't' in /frontend.functions.php on line 43
HTML est pas une langue régulière des expressions régulières de façon peuvent ne pas être le meilleur outil ici. –
Vous ne devez pas utiliser d'expressions régulières pour analyser html. Voir ici: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – Oded
Va-t-il jamais s'arrêter? – Gordon