如何正则出HTTP开头的JPG图片? 我使用 simple_html_dom.php, 只会找出HTTP开头的图片,如何再加一个JPG结尾的判断?foreach ($html->find('img[src^="http"]') as $element) 或者哪位给写个 preg_match_all 所有 HTTP开头的JPG图片?谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不是太明白你想表达的意思,这是我学正则的时候写的,获取一个网页图片的,<?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"/>多个网址请用@隔开如:[email protected]<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);}?> .*<img .*src=[\'|\"](.*[.jpg|.gif|.png])[\'|\"].*\/??>.*/U'这样的话,连"../images/1.jpg"也抓出来了。而我需要的是 http:// 开头的所有图片 "http://domain.com/images/1.jpg" 现在过渡依赖于simple_html_dom,怎么修改正则呢? 再加一句正则就可以了foreach ($html->find('img[src^="http"]') as $element) { if(preg_match('/\.jpg/i',$element->src)){ echo $element->src . "<br />\n"; }} 你就正则匹配http开头就好了快来给我说说你我离婚后分组家庭的情况吧 请推荐几本比较好的SEO的书 关于数据库数组问题 xml数据中出现生辟字怎么办? 请教个问题下有关查询的 各位哪有PHP经典的入门的资料?要给一公司修改OA,人家用php写的,不懂啊 创建透明图片文件的问题? 有两个时间:2003-05-09和2002-08-13,请问怎么判断他们的日期? 咋的了哥们,让人煮了。快请高人治吧。 附源码:这样的PHP文本计数器怎样在index.htm中调用?急!急!!急!!!急!!!!!谢谢。 PHP+JS传参问题 如何用正则表达式去除超链接 同一页面传值
/*
* @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"/>多个网址请用@隔开如:[email protected]<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);
}
?>
这样的话,连"../images/1.jpg"也抓出来了。
而我需要的是 http:// 开头的所有图片 "http://domain.com/images/1.jpg"
if(preg_match('/\.jpg/i',$element->src)){
echo $element->src . "<br />\n";
}
}