文章目录[隐藏]
我使用 simple_html_dom.php, 只会找出HTTP开头的图片,如何再加一个JPG结尾的判断?
foreach ($html->find('img[src^="http"]') as $element)
或者
哪位给写个 preg_match_all 所有 HTTP开头的JPG图片?谢谢。
回复讨论(解决方案)
不是太明白你想表达的意思,这是我学正则的时候写的,获取一个网页图片的,
<?php/* * @param string $url 采集url * @param int $isinsite 是否为站内的 默认1为站内0为站外站内 * @return string */function getallimg($url,$isinsite=1){ $urlstr=pa<strong style="color:transparent">¥本文来源gaodai#ma#com搞@@代~&码网^</strong><small>搞gaodaima代码</small>rse_url($url); $url=$urlstr[scheme]?$url:"http://".$urlstr[path];//判断用户输入的网址有没有包含http://再进行补全 $urlstr=parse_url($url); $site="http://".$urlstr[host];//取本站地址 $subject =file_get_contents($url); $pattern = '/.*.*/U';//其中的//为分隔符 preg_match_all($pattern,$subject,$result);//查找所有的匹配项 if($isinsite==0) { foreach ($result as $key => $value) //二维数组$result[n][m]; { if($key==1) { foreach ( $value as $key => $value )//取$result[m] { $isownsite=parse_url($value); $url=$isownsite[host]?$value:$site.$isownsite[path];//获取该网页的所有图片还其他网址的 $imgcontent.="|"; %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20} %20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20}%20%20%20%20if($isinsite==1)%20%20%20%20{%20%20%20%20%20%20%20foreach%20($result%20as%20$key%20=>%20$value)%20//二维数组$result[n][m];%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{ %20%20%20%20%20%20%20%20%20%20%20%20%20if($key==1) %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20 %20%20%20%20%20%20%20%20%20%20%20%20foreach%20(%20$value%20as%20$key%20=>%20$value%20)//取$result[m] %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{ %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$isownsite=parse_url($value); %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$url=$isownsite[host]?NULL:$site.$isownsite[path];//只获取该site的不含外部网址 %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if($url!=NULL) %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$imgcontent.="|"; %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20} %20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20}%20%20%20%20return%20$imgcontent;}?>找全站内图片<br />找全站内站外图片<br />多个网址请用@隔开如:[email protected]<br /><?php$url=$_POST[site];$url=explode("@",$url);$isinsite=$_POST[onlysite];for%20(%20$i%20=%200;$i%20
%20
%20
%20%20.*.*/U’
这样的话,连”../images/1.jpg”也抓出来了。
而我需要的是 http:// 开头的所有图片 “http://domain.com/images/1.jpg”
你就正则匹配http开头就好了
你就正则匹配http开头就好了
现在过渡依赖于simple_html_dom,怎么修改正则呢?
再加一句正则就可以了
foreach ($html->find(‘img[src^=”http”]’) as $element) {
if(preg_match(‘/\.jpg/i’,$element->src)){
echo $element->src . “
\n”;
}
}
感谢 ,life169
你就正则匹配http开头就好了
快来给我 说说你我离婚后 分组家庭的情况吧
phpinfo();