首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

怎么正则出HTTP开头的JPG图片

2013-10-11 
如何正则出HTTP开头的JPG图片?我使用 simple_html_dom.php, 只会找出HTTP开头的图片,如何再加一个JPG结尾

如何正则出HTTP开头的JPG图片?
我使用 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])[\'
[解决办法]
"].*\/??>.*/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.">
[解决办法]
";
                    }
           }
               }
    }
    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.">
[解决办法]
";
                    }
           }
               }
    }
    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);
}
?>


[解决办法]
再加一句正则就可以了

foreach ($html->find('img[src^="http"]') as $element) {
  if(preg_match('/\.jpg/i',$element->src)){
    echo $element->src . "<br />\n";
  }
}

热点排行