php过滤非本站链接

 更新时间:2016年11月25日 17:11  点击:1216

本文章是一款利用了php正则表达式来过滤非本站的链接实例。
*/
php

 代码如下 复制代码
$neirong = preg_replace("/<a(?![^<>]*?[^<>]*?>).*?</a>/si","",$bbb);
echo $neirong;

 

方法二

 代码如下 复制代码

$str ='<li><a href="http://www.111cn.net/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.111cn.net/" 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>";

三个函数都是把一个字符串分割成一个数组,但各有各的用法,下面我们就一一来看关于php explode split str_split函数区别与实例吧。
*/
$str ="id_99_cn.html";
$array = explode('_',$str);
print_r($array);
/*
array
(
    [0] => id
    [1] => 99
    [2] => cn.html
)
*/

//函数原型:array split (string $pattern, string $string [, int $limit])

$split = split('_',$str);
print_r($split);
/*
array
(
    [0] => id
    [1] => 99
    [2] => cn.html
)
*/

//str_split() 函数的字符串分割成一个数组。

$str_split = str_split($str,2);
print_r($str_split);
/*
array
(
    [0] => id
    [1] => _9
    [2] => 9_
    [3] => cn
    [4] => .h
    [5] => tm
    [6] => l
)

本站原创文章转载注明来源于http://www.111cn.net

下面我们是要把指定正则出来的内空替换成别一种内容,这样做我们就会要用到正则替换函数preg_replace了,下面的实例是

文本有下面标签

 代码如下 复制代码

<img style src="<?=$url?>/images/styleno.jpg" width="30" height="30" />
<img style src="<?=$url?>/images/styleno.jpg" width="30" height="30" />
<img src="images/styleno.jpg" width="30" height="30" />
<img src="images/styleno.jpg" width="30" height="30" />
想用正则把他们替换成
有 style的 替换成<img src="<?=$url?>/images/styleno.jpg" width="30" height="30" />
没style 的 替换成<img src="<?=$path?>/images/styleno.jpg" width="30" height="30" />

*/

$content1 ='<img style src="<?=$url?>/images/styleno.jpg" width="30" height="30" />';
$content ='<img style src="/images/styleno.jpg" width="30" height="30" />';
$a='<img src="<?=$url?>/images/styleno.jpg" width="30" height="30" />';
echo preg_replace('/<imgs+styles+src=['"]?[^'"]*['"]?\s+.*\/>/i',$a,$content);

$content1 ='<img src="images/styleno.jpg" width="30" height="30" />';
$b='<img src="<?=$path?>/images/styleno.jpg" width="30" height="30" />';
echo preg_replace('/<img src=['"]?[^'"]*['"]?\s+.*\/>/i',$b,$content1);

下面提供两款关于ip正则表达式的实例,实例做了多个IP的地址的验证,同时把合法的ip地址给打印出来了。

//检查ip地址的正则表达式示例1。
 

 代码如下 复制代码

$arr_ip = array(
"127.0.0.1",
"218.206.10.123",
"192.221.515.0",
"123.0.0.0.1",
"-12.255.0.10",
"10.9c.132.69",
"255.10.10.255"
);

foreach ($arr_ip as $ip)
{
    if(validateip($ip))
    {
        echo "<b>$ip 是正确的ip地址</b>";
        echo "<br/><br/>";
    }
    else
    {
        echo "$ip 不是正确的ip地址";
        echo "<br/><br/>";
    }
}

function validateip($ip)
{
    $iparray = explode(".",$ip);
    for($i=0;$i<count($iparray);$i++)
    {
        if($iparray[$i]>255)
            return (0);
    }
    return ereg("[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}",$ip);
}
 // 检查ip地址的正则表达式示例2。
 $arr_ip = array(
"127.0.0.1",
"218.206.10.123",
"192.221.515.0",
"123.0.0.0.1",
"-12.255.0.10",
"10.9c.132.69",
"255.10.10.255"
);

foreach ($arr_ip as $ip)
{
    if(validateip($ip))
    {
        echo "<b>$ip 是正确的ip地址</b>";
        echo "<br/><br/>";
    }
    else
    {
        echo "$ip 不是正确的ip地址";
        echo "<br/><br/>";
    }
}

function validateip($ip)
{
    $iparray = explode(".",$ip);
    for($i=0;$i<count($iparray);$i++)
    {
        if($iparray[$i]>255)
            return (0);
    }
    return ereg("^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$",$ip);
}

这里提供两种关于Email正则表达式与URL正则表达式验证的正则,非常的实用,关于email的正则表达式可以把内容中的所有邮箱地址获取出来,而url地址正则也一样,可以把内容中所有http开头url地址保存提取来哦。
 代码如下 复制代码

 $str_arr = array(
"mymail@111cn.net",
"my_mail@111cn.net",
"my-mail@111cn.net",
"my.mail@site.com.cn",
"mymail@site.com.ccoomm",
"mymail@site.cn",
"mymail@@@lsite.com",
"mymail@site",
"mymail@111cn.net",
"my2007@111cn.net",
"163mail_for-me777@111cn.net",
);

$patt_email = "/^[_a-za-z0-9-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/";

foreach ($str_arr as $str)
{
    echo "字符串'$str':是";
    if (preg_match($patt_email, $str))
    {
        echo "<b>合法的email格式</b>";
        echo "<br>";
        echo "<br>";
    }
    else
    {
        echo "不合法的email格式";
        echo "<br>";
        echo "<br>";
    }
}
 

// 17、url正则表达式。
 

 代码如下 复制代码

$str_arr = array(
"http://www.111cn.net",
"www.111cn.net",
"http://www.111cn.net/abc/123.html",
"//111cn.net",
":www.111cn.net"
);

$patt_url = "/^(http://)?[a-za-z0-9]+(.[a-za-z0-9]+)*.+$/";

foreach ($str_arr as $str)
{
    echo "字符串'$str':是";
    if (preg_match($patt_url, $str))
    {
        echo "<b>合法的url格式</b>";
        echo "<br>";
        echo "<br>";
    }
    else
    {
        echo "不合法的url格式";
        echo "<br>";
        echo "<br>";
    }
}

[!--infotagslink--]

相关文章