//图片集
function picset($content,$id)
{
$content = str_replace('\"','"',$content);
if(preg_match_all("|<img[^>]+>|U",$content,$m)){return $m;}}

解决方案 »

  1.   

    多了个参数,呵呵function picset($content)
    {
        $content = str_replace('\"','"',$content);
        if(preg_match_all("|<img[^>]+>|U",$content,$m)){return $m;}}
      

  2.   


    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,找到则可以穷举返回结果以利用。
      

  3.   


    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);再用正则匹配一下就好了.
      

  4.   

    谢谢楼上的。用
    $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。是不是哪里没有考虑周全,我用这个函数的目的就是为了从整个页面读取的。
      

  5.   

    我怀疑是<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;就不行了,改成搜索条件忽略大小写就行了。正则表达式,这个....
      

  6.   

    改成下面的就可以,谢谢上面的两位,万恶正则表达式……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;
        }
    }