quelqu'un pourrait-il m'aider avec le motif regex que je pourrais utiliser pour faire correspondre le texte "Chats" dans l'élément de lien?aider avec le motif regex
<A HREF="http://www.catingale2?subject=10023">Cats</A> forum
Merci d'avance!
quelqu'un pourrait-il m'aider avec le motif regex que je pourrais utiliser pour faire correspondre le texte "Chats" dans l'élément de lien?aider avec le motif regex
<A HREF="http://www.catingale2?subject=10023">Cats</A> forum
Merci d'avance!
Qu'en est-il quelque chose comme ceci:
$str = '<A HREF="http://www.catingale2?subject=10023">Cats</A> forum';
$matches = array();
if (preg_match('#<a[^>]*>(.*?)</a>#i', $str, $matches)) {
var_dump($matches[1]);
}
Ce qui donne:
string(4) "Cats"
Et, comme sidenote: D'une manière générale, à l'aide regex pour "analyser" HTML est pas tout à fait un bon idée!
pas besoin regex
$str=<<<EOF
<A HREF="http://www.catingale2?subject=10023">Cats</A> forum
<A HREF="http://www.catingale2?subject=10024">
Dogs</A>
forum
EOF;
$s = explode("</A>",$str);
foreach($s as $v){
if (strpos($v,"<A HREF")!==FALSE){
$t=explode(">",$v);
print end($t)."\n";
}
}
sortie
# php test.php
Cats
Dogs
<a[^>]*>([^<]*)<\/a>
Voilà. Vous pourriez probablement avec:
<a[^>]*>(.*)<\/a>
ou
<a[^>]*>([^<]*)
$input = '<A HREF="http://www.catingale2?subject=10023">Cats</A> forum';
if(preg_match('{<a.*?>(.*?)</a>}i',$input,$matches)) {
$hyperlinked = $matches[1];
}
echo $hyperlinked; // print Cats
Le regex utilisé est: <a.*?>(.*?)</a>
Explication:
<a.*?> - an opening anchor tag with any attribute.
(.*?) - match and remember between opening anchor tag and closing anchor tag.
</a> - closing anchor tag.
i - to make the entire matching case insensitive
quelle fonction pourrait-je utiliser ensuite obtenir le texte dans les éléments? – ajsie
Si vous avez une partie complète de HTML * (quelque chose de plus grand que ce que vous avez posté ici, je veux dire) *, un "meilleur" moyen, dans de nombreux cas, serait d'utiliser un analyseur HTML réel; comme http://www.php.net/manual/en/domdocument.loadhtml.php, puis passez par le DOM, éventuellement en utilisant des requêtes XPath. –