Heim >Backend-Entwicklung >PHP-Tutorial >php正则表达式取得内容所有链接的方法

php正则表达式取得内容所有链接的方法

WBOY
WBOYOriginal
2016-07-25 08:42:55887Durchsuche
本文实例讲述了php正则表达式取得内容所有链接的方法。分享给大家供大家参考。具体如下:

这里提供二款关于php正则链接的方法,他们可以取得内容所有链接并且保存到一个数组,当然也可以把链接全部替换.

方法一,代码如下:
  1. function get_all_url($code){
  2. preg_match_all('/"' ]+)["|']?s*[^>]*>([^>]+)/i',$code,$arr);
  3. return array('name'=>$arr[2],'url'=>$arr[1]);
  4. }
复制代码

方法二,代码如下:
  1. $site=substr($url,0,strpos($url,"/",8));//站点
  2. $base=substr($url,0,strrpos($url,"/")+1);//文件所在目录
  3. $fp = fopen($url, "r" );//打开url
  4. while(!feof($fp))$contents.=fread($fp,1024);//
  5. $pattern="|href=['"]?([^ '"]+)['" ]|u";
  6. preg_match_all($pattern,$contents, $regarr, preg_set_order);//匹配所有href=
  7. for($i=0;$i
  8. if(!eregi("://",$regarr[$i][1]))//是否是相对路径,即是否还有://
  9. if(substr($regarr[$i][1],0,1)=="/")//是否是站点的根目录
  10. echo "link".($i+1).":".$site.$regarr[$i][1]."
    ";//根目录
  11. else
  12. echo "link".($i+1).":".$base.$regarr[$i][1]."
    ";//当前目录
  13. else
  14. echo "link".($i+1).":".$regarr[$i][1]."
    ";//相对路径
  15. }
  16. fclose($fp);
复制代码

正则表达式, php


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn