-
PHP中preg_match_all函数正则匹配详解
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 ]]] )
例,代码如下:
- <?php
- preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
- "<b>example: </b><div align=left>this is a test</div>",
- $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 '<br>';
- 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]}))
- {//开源代码phpfensi.com
- echo $m[1][$i].'='.${$m[1][$i]};
- echo '<br>';
- }
- }
- }
- //结果:keywords=好脚本,d=1,b=3,cid=419299191
匹配文章中的图片,代码如下:
- <?php
- $con = file_get_contents("http://www.phpfensi.com/");
- $pattern="/<[img|IMG].*?src=['|"](.*?(?:[.gif|.jpg|.png]))['|"].*?[/]?>/";
- preg_match_all($pattern,$con,$match);
- print_r($match);
- ?>
- 输出代码
- Array
- (
- [0] => Array
- (
- [0] => <img src="http://www.phpfensi.com/usr/themes/dddefault/images/logo.png" alt="" />
- [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" />
- [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" />
- )//开源代码phpfensi.com
- [1] => Array
- (
- [0] => http://www.phpfensi.com/usr/themes/dddefault/images/logo.png
- [1] => http://www.phpfensi.com/usr/uploads/2012/09/531656480.jpg
- [2] => http://www.phpfensi.com/usr/uploads/2012/09/2647136297.jpg
- )
- )
出处:http://www.phpfensi.com/php/20140913/5553.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式