求一个PHP函数,返回html所有图片地址 //图片集function picset($content,$id){ $content = str_replace('\"','"',$content); if(preg_match_all("|<img[^>]+>|U",$content,$m)){return $m;}} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 多了个参数,呵呵function picset($content){ $content = str_replace('\"','"',$content); if(preg_match_all("|<img[^>]+>|U",$content,$m)){return $m;}} function picset($content){ $content = str_replace('\"','"',$content); if(preg_match_all("|<img[^>]+>|U",$content,$m)){return $m;}}$str = <<<strdkfjdklsjfkdjfk<img src = "http://www.google.com/a.jpg">dfdfdfdfdfdfdf<img alt="dfd" src = 'abc.jpg'>str;$res =picset($str);var_dump($res);显示:array(1) { [0]=> array(2) { [0]=> string(41) "<img src = "http://www.google.com/a.jpg">" [1]=> string(31) "<img alt="dfd" src = 'abc.jpg'>" }}我只想要地址:http://www.google.com/a.jpg与abc.jpg函数涉及到正则表达式,这个方面我不太懂,能继续帮忙一下吗?还有,返回的结果如何用?我想结果这样返回,如果一个也找不到,那么返回false,找到则可以穷举返回结果以利用。 function picset($content){ $arrPic = array(); $content = str_replace('\"','"',$content); if(preg_match_all("|<img[^>]+>|U",$content,$m)) { foreach($m[0] as $key=>$value) { if(preg_match("|src\s?=[\s\"\']+([^\"\'\=\s]+)[\s\"\']+|i", $value, $matches)) { $arrPic[] = trim($matches[1]); } } } if(sizeof($arrPic) > 0) { return $arrPic; } else { return false; }}$str = <<<strdkfjdklsjfkdjfk<img src = "http://www.google.com/a.jpg">dfdfdfdfdfdfdf<img alt="dfd" src = 'abc.jpg'>str;$res =picset($str);var_dump($res);再用正则匹配一下就好了. 谢谢楼上的。用$str = <<<strdkfjdklsjfkdjfk<img src = "http://www.google.com/a.jpg">dfdfdfdfdfdfdf<img alt="dfd" src = 'abc.jpg'>str;测试成功。但是我用来网上随便找一个页面,比方:http://www.gdzjrd.gov.cn/recordpage.aspx?key=569用该网页的代码作为$str,结果却返回false。是不是哪里没有考虑周全,我用这个函数的目的就是为了从整个页面读取的。 我怀疑是<img大小写问题,把上面的$str = < < <str dkfjdklsjfkdjfk <img src = "http://www.google.com/a.jpg"> dfdfdfdfdfdfdf <img alt="dfd" src = 'abc.jpg'> str;改成$str = < < <str dkfjdklsjfkdjfk <IMG src = "http://www.google.com/a.jpg"> dfdfdfdfdfdfdf <iMg alt="dfd" src = 'abc.jpg'> str;就不行了,改成搜索条件忽略大小写就行了。正则表达式,这个.... 改成下面的就可以,谢谢上面的两位,万恶正则表达式……function picset($content){ $arrPic = array(); $content = str_replace('\"','"',$content); if(preg_match_all("|<[iI][mM][gG][^>]+>|U",$content,$m)) { foreach($m[0] as $key=>$value) { if(preg_match("|[sS][rR][cC]\s?=[\s\"\']+([^\"\'\=\s]+)[\s\"\']+|i", $value, $matches)) { $arrPic[] = trim($matches[1]); } } } if(sizeof($arrPic) > 0) { return $arrPic; } else { return false; }} php编辑其里都用什么编码啊? 一个Php页面 每次都要运行十几条sql语句?而且这些sql语句除了条件不同外其他都是一样的..请问是否有更高效的方法?? 学网站开发的要不要学一下C++呀~~~~~急急``` get变量的问题! 急啊,大家帮帮忙阿! 简单问题,求一条sql,谢谢 关于把图片写到mysql的问题,会不会影响速度? PHP文件操作问题; cms的运行思路 php中的static除了能不实例化访问还有什么用? windows 下发送邮件 php里有没有相当于asp中的server.HTMLEncode
{
$content = str_replace('\"','"',$content);
if(preg_match_all("|<img[^>]+>|U",$content,$m)){return $m;}}
function picset($content)
{
$content = str_replace('\"','"',$content);
if(preg_match_all("|<img[^>]+>|U",$content,$m)){return $m;}}
$str = <<<str
dkfjdklsjfkdjfk<img src = "http://www.google.com/a.jpg">
dfdfdfdfdfdfdf<img alt="dfd" src = 'abc.jpg'>
str;$res =picset($str);var_dump($res);显示:
array(1) {
[0]=>
array(2) {
[0]=>
string(41) "<img src = "http://www.google.com/a.jpg">"
[1]=>
string(31) "<img alt="dfd" src = 'abc.jpg'>"
}
}
我只想要地址:http://www.google.com/a.jpg与abc.jpg
函数涉及到正则表达式,这个方面我不太懂,能继续帮忙一下吗?还有,返回的结果如何用?我想结果这样返回,如果一个也找不到,那么返回false,找到则可以穷举返回结果以利用。
function picset($content)
{
$arrPic = array();
$content = str_replace('\"','"',$content);
if(preg_match_all("|<img[^>]+>|U",$content,$m))
{
foreach($m[0] as $key=>$value)
{
if(preg_match("|src\s?=[\s\"\']+([^\"\'\=\s]+)[\s\"\']+|i", $value, $matches))
{
$arrPic[] = trim($matches[1]);
}
}
}
if(sizeof($arrPic) > 0)
{
return $arrPic;
}
else
{
return false;
}
}
$str = <<<str
dkfjdklsjfkdjfk<img src = "http://www.google.com/a.jpg">
dfdfdfdfdfdfdf<img alt="dfd" src = 'abc.jpg'>
str;
$res =picset($str);
var_dump($res);再用正则匹配一下就好了.
$str = <<<str
dkfjdklsjfkdjfk<img src = "http://www.google.com/a.jpg">
dfdfdfdfdfdfdf<img alt="dfd" src = 'abc.jpg'>
str;
测试成功。但是我用来网上随便找一个页面,比方:
http://www.gdzjrd.gov.cn/recordpage.aspx?key=569
用该网页的代码作为$str,结果却返回false。是不是哪里没有考虑周全,我用这个函数的目的就是为了从整个页面读取的。
$str = < < <str
dkfjdklsjfkdjfk <img src = "http://www.google.com/a.jpg">
dfdfdfdfdfdfdf <img alt="dfd" src = 'abc.jpg'>
str;
改成
$str = < < <str
dkfjdklsjfkdjfk <IMG src = "http://www.google.com/a.jpg">
dfdfdfdfdfdfdf <iMg alt="dfd" src = 'abc.jpg'>
str;就不行了,改成搜索条件忽略大小写就行了。正则表达式,这个....
{
$arrPic = array();
$content = str_replace('\"','"',$content);
if(preg_match_all("|<[iI][mM][gG][^>]+>|U",$content,$m))
{
foreach($m[0] as $key=>$value)
{
if(preg_match("|[sS][rR][cC]\s?=[\s\"\']+([^\"\'\=\s]+)[\s\"\']+|i", $value, $matches))
{
$arrPic[] = trim($matches[1]);
}
}
}
if(sizeof($arrPic) > 0)
{
return $arrPic;
}
else
{
return false;
}
}