时间:2021-07-01 10:21:17 帮助过:16人阅读
php正则实现图片替换图片的方法:首先指定网页并启动curl;然后执行一个curl会话;接着执行正则匹配;最后匹配所有的img并实现替换即可。
推荐:《PHP视频教程》
本教程操作环境:Windows7系统、PHP5.6版,该方法适用于所有品牌电脑。
php正则提取图片并替换
- <?php
- // 指定网页
- $url = "http://aihuinong.com/goods/";
- // 启动curl
- $ch = curl_init();
- // CURLOPT_URL: 这是你想用PHP取回的URL地址。你也可以在用curl_init()函数初始化时设置这个选项。
- curl_setopt ($ch, CURLOPT_URL, $url);
- //(后面参数为1时) 如果成功只将结果返回,不自动输出任何内容。如果失败返回FALSE
- //(后面参数为0时) 如果成功只返回TRUE,自动输出返回的内容。如果失败返回FALSE
- curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
- // CURLOPT_CONNECTTIMEOUT 在发起连接前等待的时间,如果设置为0,则不等待。
- curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,10);
- // curl_exec — 执行一个curl会话
- $dxycontent = curl_exec($ch);
- // 匹配class="yt-goods-nav" - class="pagination"之间的内容
- $pattern = '/<div class="yt-goods-nav">(.+?)<div class="pagination" style="float: right">/is';
- // 执行正则匹配
- preg_match($pattern, $dxycontent, $match);
- //var_dump($match[0]);
- //$match[0] 即为<div class="yt-goods-nav">和<div class="pagination">之间的所有源码
- // 匹配所有的img
- preg_match_all('/<img.+src=\"?(.+\.(jpg|gif|bmp|bnp|png))\"?.+>/i',
- $match[0],$matches);//带引号
- $new_arr=array_unique($matches[0]);//去除数组中重复的值
- //
- foreach($new_arr as $key) {
- //strip_tags($key);
- //由于这个网站的路径的域名被隐藏 所以直接替换/为域名/
- echo preg_replace('#src="/#is', 'src="http://aihuinong.com/', $key);
- echo "</br>";
- }
今天闲来无事,于是玩玩正则。扒一扒自己公司网站上的图片。
代码里面的注释写的很清楚了。
以上就是php 正则实现图片替换图片的详细内容,更多请关注gxlcms其它相关文章!