www.adminn.cn
站长正能量分享网!

PHP中preg_match_all函数正则匹配详解

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

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><p align=left>this is a test</p>"
  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.             {//开源代码phpfensi.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.phpfensi.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.phpfensi.com/usr/themes/dddefault/images/logo.png" alt="" /> 
  13. [1] => <img style="display: block; margin-left: auto; margin-right: auto;" title="" src="http://www.phpfensi.com/usr/uploads/2012/09/531656480.jpg" alt="2" /> 
  14. [2] => <img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.phpfensi.com/usr/uploads/2012/09/2647136297.jpg" alt="875EA1C00E50B4542797E24FA6E7E1F2.jpg" /> 
  15. )//开源代码phpfensi.com 
  16. [1] => Array 
  17. [0] => http://www.phpfensi.com/usr/themes/dddefault/images/logo.png 
  18. [1] => http://www.phpfensi.com/usr/uploads/2012/09/531656480.jpg 
  19. [2] => http://www.phpfensi.com/usr/uploads/2012/09/2647136297.jpg 
  20. )

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《PHP中preg_match_all函数正则匹配详解》
文章链接:https://www.adminn.cn/news/6926.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

本站源码仅供本地环境下学习借鉴研究使用!

源码请勿用于任何涉灰站点!净化网络,站长更有责!

支付宝扫一扫打赏