清除超链接,但保留文字

用到的函数有

preg_match_all($pattern,$content,$match);

preg_replace($pattern,$replacement,$content,$limit,$count)

思路:

(1)提取超链接部分。

(2)将超链接部分用不不带超链接的文字部分替换。

难点:正则表达式

匹配超链接的正则表达式

$pattern = '/<a.*?href=".*?".*?>(.*?)<\/a>/';

或者

$pattern = '/<a[^>]*>([^<]*)<\/a>/';

上面两种正则表达式都不能匹配一些网页中的全部超链接,原因是什么,我没有分析,不知道。

代码如下:

 1 <?php
 2 /*
 3     preg_relace()
 4     清除网页中的超链接,但是保留文字,思路:找出所有的超链接;将超链接用无超链接的文字代替
 5 */
 6 $content = file_get_contents('http://www.hao123.com');
 7 
 8 $result = strip_link($content);
 9 echo $result;
10 function strip_link($content)    //清除文本中的超链接
11 {
12     /*
13     $pattern = '/<a.*?href=".*?".*?>(.*?)<\/a>/';
14     */
15     $pattern = '/<a([^>]*)>([^<]*)<\/a>/';
16     preg_match_all($pattern,$content,$match);
17     $result = $content;
18     foreach( $match[2] as $value )
19     {
20         $result = preg_replace($pattern,$value,$result,1);
21     }
22     return $result;
23 }

 

转载于:https://www.cnblogs.com/chuganghong/archive/2013/05/06/3062563.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值