je dois saisir le nom d'une balise html d'ancrage avec regex et php donc de texte que je vais obtenir « bonjour » (le nom de l'ancre)Obtenir le nom d'ancrage avec php regex
Essayé que:
$regex = '/(?<=name\=")#([^]+?)#(?=")/i';
preg_match_all($regex, $content, $data);
print_r($data);
J'ai coupé la queue le journal des erreurs apache pour savoir que:
PHP Warning: preg_match_all(): Compilation a échoué: manquant terminaison] pour la classe de caractères à décalage 26
aussi essayé:
$regex = '/(?<=name\=")([^]+?)(?=")/i';
$regex = '/(?<=name\=")[^]+?(?=")/i';
qui sont fondamentalement les mêmes. Je suppose que je me manque quelque chose, probablement une barre oblique stupide ou quelque chose comme ça, mais je ne suis pas sûr de ce que
Will apprécié toute aide Merci
SOLVED
Ok, Merci à @stillstanding et @Gordon j'ai réussi à le faire avec DOMDocument qui est beaucoup plus simple, donc, pour l'enregistrement, Voici le Snippet
$dom = new DOMDocument;
$dom->loadHTML($content);
foreach($dom->getElementsByTagName('a') as $node) {
echo $node->getAttribute('name');
}
* (liés) * [meilleures méthodes pour analyser HTML] (http://stackoverflow.com/questions/3577641/best-methods-to-parse-html/3577662 # 3577662) – Gordon
duplication possible de [Expression régulière pour saisir l'attribut href d'un élément A] (http://stackoverflow.com/questions/3820666/regular -expression-pour-saisir-l'-href-attribut-d'-un-un-élément) – Gordon
Les utilisateurs PHP n'utilisent-ils pas le mode '/ x' pour que leurs patterns puissent être traités en ** mode non-insane **? Comment venir? – tchrist