帮我看下这个只保留图片的正则哪里有问题,没效果

<?php
header("Content-Type:text/plant;charset=utf-8");
$result = file_get_contents('http://www.hnwy.org.cn/index.php?m=content&c=index&a=lists&catid=40');

$result = preg_replace("/(?:<(img)[\s\S]*?(src=[\'\"]([^<>]*?)[\'\"])[\s\S]*?>)/i","",$result);
echo $result;

?>
阅读 1.7k
1 个回答

题主写的正则结果匹配如下 而且是替换掉图片 和需求不符合 建议先学习下PHP基础语法

图片描述

如果单纯看这个网站 可以用下面的正则

src=\"(http://www.hnwy.org.cn/uploadfile/\d{4}/\d{4}/\d+?.jpg|png|jpeg))\"

当然 如果放开点可以这样写

src=\"(http://www.hnwy.org.cn/uploadfile/.+?.(jpg|png|jpeg))\"

或者

src=\"(.+?.(jpg|png|jpeg))\"

PHP代码如下

header("Content-Type:text/plant;charset=utf-8");
$result = file_get_contents('http://www.hnwy.org.cn/index.php?m=content&c=index&a=lists&catid=40');
$preg="/src=\"(.+?.(jpg|png|jpeg))\"/i";
preg_match_all($preg,$result,$array2); 
//print_r($array2);  //这个你可以看看具体的值
for($i=0;$i<count($array2[1]);$i++)//逐个输出地址 这里的1 就是()里面括起来的图片地址 不带引号
{
  echo $array2[1][$i]."<br />";
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题