Maison >développement back-end >tutoriel php >PHP utilise des expressions régulières pour extraire des liens dans le contenu

PHP utilise des expressions régulières pour extraire des liens dans le contenu

墨辰丷
墨辰丷original
2018-06-08 15:51:082476parcourir

Cet article présente principalement les informations pertinentes sur l'expression régulière PHP pour obtenir tous les liens du contenu. Les amis dans le besoin peuvent s'y référer.

Méthode 1 :

function get_all_url($code){ 
    preg_match_all(&#39;/<as+href=["|&#39;]?([^>"&#39; ]+)["|&#39;]?s*[^>]*>([^>]+)</a>/i&#39;,$code,$arr); 
    return array(&#39;name&#39;=>$arr[2],&#39;url&#39;=>$arr[1]); 
}

Méthode 2 :

/**
 * date 2015-07-24
 **/
 
$site=substr($url,0,strpos($url,"/",8));//站点 
$base=substr($url,0,strrpos($url,"/")+1);//文件所在目录 
$fp = fopen($url, "r" );//打开url 
while(!feof($fp))$contents.=fread($fp,1024);// 
$pattern="|href=[&#39;"]?([^ &#39;"]+)[&#39;" ]|u"; 
preg_match_all($pattern,$contents, $regarr, preg_set_order);//匹配所有href= 
for($i=0;$i<count($regarr);$i++){//遍历所有匹配 
if(!eregi("://",$regarr[$i][1]))//是否是相对路径,即是否还有:// 
if(substr($regarr[$i][1],0,1)=="/")//是否是站点的根目录 
  echo "link".($i+1).":".$site.$regarr[$i][1]."<br/>";//根目录 
else
  echo "link".($i+1).":".$base.$regarr[$i][1]."<br/>";//当前目录 
else
echo "link".($i+1).":".$regarr[$i][1]."<br/>";//相对路径 
}
fclose($fp);

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère cela peut aider. L’apprentissage de chacun est utile.

Recommandations associées :

Cinq façons de générer des mots de passe aléatoires en PHP

Connaissances de base et application de PHP modèles de conception

implémentation PHP+jQuery+MySql d'exemples de vote rouge et bleu

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en 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