Maison  >  Article  >  développement back-end  >  php utilisant une expression régulière pour obtenir l'URL dans une chaîne

php utilisant une expression régulière pour obtenir l'URL dans une chaîne

高洛峰
高洛峰original
2017-01-21 13:42:491646parcourir

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 !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn