php regex pour obtenir la chaîne de caractères à l'intérieur de href de la balise
J'ai besoin d'une regex qui me donnera la chaîne à l'intérieur d'une balise href et à l'intérieur des citations aussi.
Par exemple, j'ai besoin d'extraire theurltoget.com dans ce qui suit:
<a href="theurltoget.com">URL</a>
En outre, je ne veux que l'url de base de la partie. I. e. de http://www.mydomain.com/page.html
je ne veux http://www.mydomain.com/
Un Consensus général: Ne pas utiliser des Expressions Régulières pour analyser le code HTML.
Ok, comment puis-je obtenir la balise href puis à l'aide de php
php.net/manual/en/class.domdocument.php et php.net/manual/en/function.parse-url.php est tout ce dont vous avez besoin.
Vos données ne contient même pas un régime.
Ne pas utiliser des expressions régulières pour analyser le code HTML. Utiliser un parseur HTML module. Vous ne pouvez pas fiable analyser HTML avec des expressions régulières, et vous ferez face à de la tristesse et de la frustration en bas de la route. Dès que les modifications HTML de vos attentes, votre code sera brisé. Voir htmlparsing.com/php pour des exemples de la façon d'analyser correctement le HTML avec PHP de modules qui ont déjà été écrits, des tests et de débogage.
Ok, comment puis-je obtenir la balise href puis à l'aide de php
php.net/manual/en/class.domdocument.php et php.net/manual/en/function.parse-url.php est tout ce dont vous avez besoin.
Vos données ne contient même pas un régime.
href
's ne peuvent pas contenir toujours le schéma et le domaine.Ne pas utiliser des expressions régulières pour analyser le code HTML. Utiliser un parseur HTML module. Vous ne pouvez pas fiable analyser HTML avec des expressions régulières, et vous ferez face à de la tristesse et de la frustration en bas de la route. Dès que les modifications HTML de vos attentes, votre code sera brisé. Voir htmlparsing.com/php pour des exemples de la façon d'analyser correctement le HTML avec PHP de modules qui ont déjà été écrits, des tests et de débogage.
OriginalL'auteur David | 2010-10-22
Vous devez vous connecter pour publier un commentaire.
Ne pas utiliser les regex pour cela. Vous pouvez utiliser xpath et construit dans les fonctions de php pour obtenir ce que vous voulez:
peut fournir un sujet lié $myHtml exemple de chaîne svp c:
Comment vérifier html est invaild. quelque chose comme utilisateur d'entrer le code html
<div>
commediv>
C'est la façon la plus élégante pour extraire les attributs à partir d'un document HTML.
OriginalL'auteur Drew Hunter
En outre: oui, cela fonctionne si vous êtes seulement à la recherche de l'url de base de la partie (la 2ème partie de la question par @David)! Si vous êtes à la recherche pour l'ensemble de l'url entre le href, utiliser une autre expression régulière (je vais essayer de poster cela dans la réponse ci-dessous).
OriginalL'auteur Alec
cette expression poignée 3 options:
OriginalL'auteur ishubin
http://www.the-art-of-web.com/php/parse-links/
/U
modificateur fixe mon problème. Merci pour l'astuce!Cela ne fonctionnera pas si il y a d'autres attributs dans le
<a>
élément.OriginalL'auteur drudge
Pour tous href valeurs de remplacement:
OriginalL'auteur Basani
La réponse par @Alec si vous êtes seulement à la recherche de l'url de base de la partie (la 2ème partie de la question par @David)!
Cela vous donnera:
De sorte que vous pouvez utiliser
$href = $info["scheme"] . "://" . $info["host"]
Qui vous donne:
Lorsque vous êtes à la recherche pour l'url en entier entre le href, Vous devriez être en utilisant une autre expression régulière, par exemple, l'expression régulière fournie par @user2520237.
cela vous donnera:
Maintenant, vous pouvez utiliser
$href = $info["scheme"] . "://" . $info["host"] . $info["path"];
Qui vous donne:
OriginalL'auteur Linkmichiel
Cela va gérer le cas où il n'y a pas de guillemets autour de l'URL.
Mais sérieusement, ne pas analyser HTML avec la regex. Utilisation DOM ou une analyse correcte de la bibliothèque.
Pas de guillemets autour de l'URL ... c'est que même syntaxiquement correct?
OriginalL'auteur kijin
Je pense que vous devriez être en mesure de gérer le reste.
OriginalL'auteur Adam Byrtek
Parce que Positifs et Négatifs Lookbehind sont cool
Il correspond seulement ce que vous voulez, sans les guillemets
OriginalL'auteur Pablo S G Pacheco