首页 > php代码 > php 过滤字符串中链接地址

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

收藏随意^^请保留教程地址.

标签:preg_match

相关文章

发表留言