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

本文实例讲述了php正则表达式取得内容所有链接的方法。分享给大家供大家参考。具体如下:

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

方法一,代码如下:
复制代码 代码如下:function get_all_url($code){ 
        preg_match_all('/<as+href=["|']?([^>"' ]+)["|']?s*[^>]*>([^>]+)</a>/i',$code,$arr); 
        return array('name'=>$arr[2],'url'=>$arr[1]); 
}
方法二,代码如下:
复制代码 代码如下:$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=['"]?([^ '"]+)['" ]|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);

希望本文所述对大家的正则表达式学习有所帮助。

时间: 2024-10-13 23:54:00

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

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

本文实例讲述了php正则表达式取得内容所有链接的方法.分享给大家供大家参考.具体如下: 这里提供二款关于php正则链接的方法,他们可以取得内容所有链接并且保存到一个数组,当然也可以把链接全部替换. 方法一,代码如下: 复制代码 代码如下: function get_all_url($code){          preg_match_all('/<as+href=["|']?([^>"' ]+)["|']?s*[^>]*>([^>]+)<

php正则表达式获取内容所有链接_php技巧

方法一: function get_all_url($code){ preg_match_all('/<as+href=["|']?([^>"' ]+)["|']?s*[^>]*>([^>]+)</a>/i',$code,$arr); return array('name'=>$arr[2],'url'=>$arr[1]); } 方法二: /** * date 2015-07-24 **/ $site=substr($ur

PHP实现对站点内容外部链接的过滤方法_php技巧

熟悉SEO的朋友都知道,对于网站外部链接失效的情况如果链接带有rel="nofollow"属性可以避免不必要的损失.本文就以实例形式演示了PHP实现对站点内容外部链接的过滤方法.具体如下: 问题描述:原来站内很多文章都是摘录的外部文章,文章里很多链接要么是时间久了失效了,要么就是一些测试的网址,如:http://localhost/ 之类的,链接多了的话,就形成站内很多死链接,这对SEO优化是很不利的. 解决方法:需要对站点内的内容进行过滤,将不是内部链接的链接加上 rel="

帝国cms内容页面获取当前栏目链接地址方法

帝国cms内容页面获取当前栏目链接地址方法: <? $r['classid']=$GLOBALS[navclassid]; $classurl=sys_ReturnBqClassname($r,9); echo $classurl; ?>

javascript自动给文本url地址增加链接的方法分享

 这篇文章主要介绍了javascript自动给文本url地址增加链接的方法,有需要的朋友可以参考一下 URL地址自动添加的实现其实就是那么点内容:检测与替换.   检测   "检测"就是检测文字(字符串)内部是否有符合http地址的内容,显然,这需要用到正则表达式进行验证,这个工作前端和后台都可以做,这里,只讲前端的方法,使用JavaScript实现.   验证HTTP地址的正则表达式如下(可能有疏漏或是不准确之处,欢迎指正):   代码如下: var reg = /(http://|

PHP批量获取网页中所有固定种子链接的方法_php技巧

本文实例讲述了PHP批量获取网页中所有固定种子链接的方法.分享给大家供大家参考,具体如下: 经常的下载链接比较多的时候,就像一次性将所有的链接添加到迅雷或者电炉,但是没有在这种选项,怎么办,咱是PHPer啊,这事儿难不到咱 且看代码,当然要换成你的,要根据具体情况来做修改. <?php header("content-type:text/html;charset=utf8"); $str = file_get_contents('./ShowFile.asp'); $str1 =

“懒人”:守株待兔的友情链接建设方法

大家好,我是宏图互联.我们网站建设的网站已经正式发布好几个月了,刚开始我们的权重不高,所以我们都是主动去找别人交换友情链接的.经过这几个月的努力,我们的网站实力水平也快速提高了.以至于我们现在变"懒"了,不想主动去找别人交换友链了,而我们现在采用的链接交换方法是守株待兔,即利用链接交换平台. 首先,大家得知道,什么是链接交换平台? 链接交换平台是最近几年才兴起的一种单一功能的网站,作用只有一个,就是提供链接交换信息.在链接交换平台上,用户一般就是各个网站的站长.搜索引擎优化人员(SEO

JS实现探测网站链接的方法【测试可用】_javascript技巧

本文实例讲述了JS实现探测网站链接的方法.分享给大家供大家参考,具体如下: 如果想通过程序探测一个网站链接是否存在,可以通过服务器端高级语言编程实现,其实客户端的JavaScript也是可以探测的,下面通过一个技巧来探测网站链接. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&q

Android编程实现提取网址链接的方法_Android

本文实例讲述了Android编程实现提取网址链接的方法.分享给大家供大家参考,具体如下: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.util.regex.Matcher; import java.util.regex.Pattern;