Après avoir écrit un système de questions et réponses aujourd'hui et être allé en ligne, j'ai constaté que de nombreuses personnes publiaient des liens depuis que le service commercial nous a demandé de filtrer les adresses de sites Web, je vais partager avec vous une fonction pour extraire les adresses URL de chaîne. le code est le suivant :
$str ='本文实例讲述了php匹配字符串里所有URL地址的方法。http://www.manongjc.com 分享给大家供大家参考'; preg_match_all("/http:[\/]{2}[a-z]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]*[A-Za-z\d]*[\/]*[A-Za-z\d]*/",$str,$array2); print_r($array2);
Le résultat en cours d'exécution est :
( [0] => Array ( [0] => http://www.manongjc.com ) )
La fonction preg_match_all est principalement utilisée ici Le spécifique. l'utilisation de cette fonction est la suivante :
preg_match_all — Effectuer une correspondance d'expression régulière globale
Syntaxe :
int preg_match_all ( string pattern, string subject, array matches [, int flags] )
Rechercher dans le sujet tout le contenu qui correspond à l'expression régulière donnée par pattern et termine le résultat par L'ordre spécifié par flags est placé dans les correspondances.
Une fois la première correspondance trouvée, les recherches suivantes commencent à la fin de la correspondance précédente.
Portez une attention particulière à PREG_PATTERN_ORDER et PREG_SET_ORDER
les drapeaux peuvent être une combinaison des drapeaux suivants (notez que cela n'a aucun sens d'utiliser PREG_PATTERN_ORDER et PREG_SET_ORDER ensemble) :
Si vous utilisez PREG_PATTERN_ORDER
Triez les résultats de sorte que $matches[0] soit un tableau de toutes les correspondances de modèles, $matches[1] soit un tableau de chaînes correspondant au sous-modèle dans la première parenthèse, et ainsi de suite. (C'est-à-dire que $matches[0] [0] est le deuxième élément de toutes les correspondances de modèles, $matches[0] [1] est le deuxième élément de toutes les correspondances de modèles, $matches[1] [0] est la correspondance de chaque élément. Le premier élément entre parenthèses, $matches[1] [0] correspond au deuxième élément de chaque parenthèse)
<?php preg_match_all ("|<[^>]+>(.*)</[^>]+>|U","<b>example: </b><div align=left>this is a test</div>",$out, PREG_PATTERN_ORDER); /* http://www.manongjc.com/article/1591.html */ print $out[0][0].", ".$out[0][1]."\n"; print $out[1][0].", ".$out[1][1]."\n"; ?>
Résultat de sortie :
<b>example: </b>, <div align=left>this is a test</div> example: , this is a test
Pour plus d'articles liés à PHP utilisant des expressions régulières pour obtenir des URL dans des chaînes, veuillez faire attention au site Web PHP chinois !