Home > Backend Development > PHP Tutorial > 如何正则出HTTP开头的JPG图片?

如何正则出HTTP开头的JPG图片?

WBOY
Release: 2016-06-23 14:23:40
Original
1377 people have browsed it

我使用 simple_html_dom.php, 只会找出HTTP开头的图片,如何再加一个JPG结尾的判断?

foreach ($html->find('img[src^="http"]') as $element) 
Copy after login


或者
哪位给写个 preg_match_all 所有 HTTP开头的JPG图片?谢谢。


回复讨论(解决方案)

不是太明白你想表达的意思,这是我学正则的时候写的,获取一个网页图片的,

<?php/* * @param string $url 采集url * @param int $isinsite 是否为站内的 默认1为站内0为站外站内 * @return string  */function getallimg($url,$isinsite=1){    $urlstr=parse_url($url);    $url=$urlstr[scheme]?$url:"http://".$urlstr[path];//判断用户输入的网址有没有包含http://再进行补全    $urlstr=parse_url($url);    $site="http://".$urlstr[host];//取本站地址    $subject =file_get_contents($url);    $pattern = '/.*<img  .*src=[\'|\"](.*[.jpg|.gif|.png])[\'|\"].*\/?? alt="如何正则出HTTP开头的JPG图片?" >.*/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.="<img   src=".$url." alt="如何正则出HTTP开头的JPG图片?" >|";		                    }		           }               }    }    if($isinsite==1)    {       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]?NULL:$site.$isownsite[path];//只获取该site的不含外部网址			                   if($url!=NULL)			                   $imgcontent.="<img   src=".$url." alt="如何正则出HTTP开头的JPG图片?" >|";		                    }		           }               }    }    return $imgcontent;}?><form action="getimg.php" method="post"><input type="radio" name="onlysite" value="1" />找全站内图片<br/><input type="radio" name="onlysite" value="0" />找全站内站外图片<br/><input type="text"name="site" size="70"/>多个网址请用&#64;隔开如:www.baidu.com@www.h2ero.cn<br/><input type="submit"  name="name" value="找图" /></form><?php$url=$_POST[site];$url=explode("@",$url);$isinsite=$_POST[onlysite];for ( $i = 0;$i <2; $i++ ) {	    if($url[$i]!=NULL)	echo getallimg($url[$i],$isinsite);}?>
Copy after login

.*如何正则出HTTP开头的JPG图片?.*/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();
Copy after login

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template