Heim  >  Artikel  >  Backend-Entwicklung  >  如何正则出HTTP开头的JPG图片?

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

WBOY
WBOYOriginal
2016-06-23 14:23:401315Durchsuche

我使用 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=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);}?>

.*如何正则出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();

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn