一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

PHP中preg_match_all函数正则匹配详解

时间:2013-06-26 编辑:简简单单 来源:一聚教程网

preg_match_all — 执行一个全局正则表达式匹配

int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )

 代码如下 复制代码

preg_match_all("|<[^>]+>(.*)]+>|U",
    "example:

this is a test
",
    $out, PREG_PATTERN_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "n";
echo $out[1][0] . ", " . $out[1][1] . "n";
?>

如何获取伪静态url中的参数变量,已经对应的值。

比如说。你现在url的是这样的。/js/d1b3cid419299191rs好脚本

你的.htaccess文件会这样写rewirte规则 RewriteRule ^js/(.*)$ /index.php?m=Sell&a=index&g=$1 [QSA,PT,L]

这样你就可以把g接收过来。

 代码如下 复制代码

$get = 'd1b3cid419299191rs好脚本';
$rs_pos = strpos($get,'rs');
if($rs_pos !== false)
{
    $rs = substr($get,$rs_pos);
    $rs = str_replace('rs','',$rs);
    $rs = strpos($rs,'/')!==false ? substr($rs,0,strpos($rs,'/')) : $rs;
    $get = substr($get,0,$rs_pos);
}
echo 'keywords='.$rs;
echo '
';
preg_match_all('/([a-z]*)([0-9]+)/',$get,$m);
if($m)
{
        $k = $v = '';
        $count = count($m[1]);
        for($i = 0; $i <= $count; $i++)
        {
            ${$m[1][$i]} = $m[2][$i];
            if(isset(${$m[1][$i]}))
            {   
                echo $m[1][$i].'='.${$m[1][$i]};
                echo '
';
            }
        }
}

结果:keywords=好脚本,d=1,b=3,cid=419299191

 

匹配文章中的图片

 

 代码如下 复制代码

$con = file_get_contents("http://www.111com.net/");
$pattern="/<[img|IMG].*?src=['|"](.*?(?:[.gif|.jpg|.png]))['|"].*?[/]?>/";
preg_match_all($pattern,$con,$match);
print_r($match);
?>

输出代码

Array
(
[0] => Array
(
[0] =>
[1] => 2
[2] => 875EA1C00E50B4542797E24FA6E7E1F2.jpg
)
[1] => Array
(
[0] => http://www.111com.net/usr/themes/dddefault/images/logo.png
[1] => http://www.111com.net/usr/uploads/2012/09/531656480.jpg
[2] => http://www.111com.net/usr/uploads/2012/09/2647136297.jpg
)
)

热门栏目