首页 > 语言 > PHP > 正文

PHP中preg_match_all函数正则匹配详解

2024-09-04 11:47:35
字体:
来源:转载
供稿:网友

preg_match_all函数是用来获取指定数据内容的,它经常用于执行正则表达多,下面我来给大家介绍两个关于preg_match_all函数实现,一个是获取url参数,一个是获取内容中图片方法.

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

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

例,代码如下:

  1. <?php 
  2. preg_match_all("|<[^>]+>(.*)</[^>]+>|U"
  3.     "<b>example: </b><div align=left>this is a test</div>"
  4.     $out, PREG_PATTERN_ORDER); 
  5. echo $out[0][0] . ", " . $out[0][1] . "n"
  6. echo $out[1][0] . ", " . $out[1][1] . "n"
  7. ?> 

如何获取伪静态url中的参数变量,已经对应的值,比如说,你现在url的是这样的,/js/d1b3cid419299191rs好脚本.

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

这样你就可以把g接收过来,代码如下:

  1. $get = 'd1b3cid419299191rs好脚本';  
  2. $rs_pos = strpos($get,'rs');  
  3. if($rs_pos !== false)  
  4. {  
  5.     $rs = substr($get,$rs_pos);  
  6.     $rs = str_replace('rs','',$rs);  
  7.     $rs = strpos($rs,'/')!==false ? substr($rs,0,strpos($rs,'/')) : $rs;  
  8.     $get = substr($get,0,$rs_pos);  
  9. }  
  10. echo 'keywords='.$rs;  
  11. echo '<br>';  
  12. preg_match_all('/([a-z]*)([0-9]+)/',$get,$m);  
  13. if($m)  
  14. {  
  15.         $k = $v = '';  
  16.         $count = count($m[1]);  
  17.         for($i = 0; $i <= $count$i++)  
  18.         {  
  19.             ${$m[1][$i]} = $m[2][$i];  
  20.             if(isset(${$m[1][$i]}))  
  21.             {//开源代码Vevb.com 
  22.                 echo $m[1][$i].'='.${$m[1][$i]};  
  23.                 echo '<br>';  
  24.             }  
  25.         }  
  26. //结果:keywords=好脚本,d=1,b=3,cid=419299191 

匹配文章中的图片,代码如下:

  1. <?php 
  2. $con = file_get_contents("http://www.Vevb.com/"); 
  3. $pattern="/<[img|IMG].*?src=['|"](.*?(?:[.gif|.jpg|.png]))['|"].*?[/]?>/"
  4. preg_match_all($pattern,$con,$match); 
  5. print_r($match); 
  6. ?> 
  7.  
  8. 输出代码 
  9.  
  10. Array 
  11. [0] => Array 
  12. [0] => <img src="http://www.Vevb.com/usr/themes/dddefault/images/logo.png" alt="" /> 
  13. [1] => <img style="display: block; margin-left: auto; margin-right: auto;" title="" src="http://www.Vevb.com/usr/uploads/2012/09/531656480.jpg" alt="2" /> 
  14. [2] => <img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.Vevb.com/usr/uploads/2012/09/2647136297.jpg" alt="875EA1C00E50B4542797E24FA6E7E1F2.jpg" /> 
  15. )//开源代码Vevb.com 
  16. [1] => Array 
  17. [0] => http://www.Vevb.com/usr/themes/dddefault/images/logo.png 
  18. [1] => http://www.Vevb.com/usr/uploads/2012/09/531656480.jpg 
  19. [2] => http://www.Vevb.com/usr/uploads/2012/09/2647136297.jpg 
  20. )

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表