2009-06-04 13 views
1

Salut, quelqu'un peut-il m'aider à identifier si une URL est présente dans une chaîne utilisant PHP?Identifier si une URL est présente dans une chaîne

Je veux tirer dans une chaîne complète, c'est-à-dire "Salut s'il vous plaît visitez http://domain.com/12345 aujourd'hui" et dépouiller l'URL complète pas seulement le nom de domaine.

Merci

+0

Jetez un oeil à cet article du blog de Jeff Atwood "Coding Horror": [Le problème avec les URL] (http://www.codinghorror.com/blog/archives/001181. html) – VVS

Répondre

2

Vous voulez probablement quelque chose comme ceci:

RegEx Guru: Detecting URLs in Text

Lisez sur cela et comprendre les compromis de chaque approche. Pour moi, \bhttp://\S+ est totalement acceptable, parce que je ne suis pas intéressé par ceux qui mettraient des liens avec des espaces (ou entourent leurs liens avec des parens) en texte clair ... (mais je ne suis pas très accommodant je suppose)

1

est ici un exemple

$str = file_get_contents('http://www.sitepoint.com'); 

preg_match_all('~(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)~', $str, $matches); 

print_r($matches); 
Questions connexes