php 过滤字符串中链接地址
过滤链接最简单的办法就是利用php教程的strip_tags函数,如下
php过滤html的函数:strip_tags(string) 这样就可以过滤掉所有的html标签了。
如果想过滤掉除了<img src="">之外的所有html标签,则可以这样写:strip_tags(string,"<img>");
过滤除了<img src=""><p>xxx</p><b></b>之外的所有html标签,
则可以这样写:
strip_tags(string,"<img><p><b>");
上面的做法不可取,因为它把所有的html都给过滤了,下面我们只要过滤连接部份。
<?php echo preg_replace("/(?<=href=)([^>]*)(?=>)/i","#", "<a href='www.phprm.com'>你好,点这里看看</a><a href='www.phprm.com'>你好,点这里看看</a>"); 正则:/(?<=href=)([^>]*)(?=>)/ (?<=exp) 匹配exp后面的位置 (?=exp) 匹配exp前面的位置 此正则 匹配 在 href= 之后 ">" 之前 的 非 ">" 的所有字符 例子:<a href='www.phprm.com '>
升级一下,我们只过滤其它网站的链接保存自己网站的
$str ='<li><a href="http://www.phprm.com/12345s" target="_blank"> 施华洛世奇!</a></li><li><a href=http://123.com/n.php?a=luxury& target="_blank"> f乔</a></li><li><a href="http://mb.phprm.com/" target="_blank"> f衣'; $match='/<li><ashref="?http://[w.]*123.com/[w]+.php?a=*[w&=]*"?s+target="_blank">(.*)</a></li>/isu'; preg_match_all($match,$str,$arr); echo "<pre>"; print_r($arr[0]); echo "</pre>";
更多详细内容请查看:http://www.phprm.com
本文链接:http://www.phprm.com/code/39772.html
收藏随意^^请保留教程地址.