看看是否这样function get_pic_list($content='')
{
    $pattern="/<img.*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?title=[\'|\"](.*?)[\'|\"].*?[\/]?>/"; 
    preg_match_all($pattern,$content,$match);     $arr_pic = array();
    $i = 0;
    for($i=0,$len=count($match[1]); $i<$len; $i++){
        $arr_pic[$i]['src'] = $match[1][$i];
        $arr_pic[$i]['title'] = $match[2][$i];
    }
    return $arr_pic;
}$content =<<<TXT
<a href="#" class="drop_toggle btn_1 " rel='nofollow'>
<span>
  <img src="/assets/ico_set.gif" alt="" title="title1" />管理菜单<img src="/assets/arrow_down.gif" alt="" title="title2" />
</span>
</a>
TXT;$result = get_pic_list($content);print_r($result);
Array
(
    [0] => Array
        (
            [src] => /assets/ico_set.gif
            [title] => title1
        )    [1] => Array
        (
            [src] => /assets/arrow_down.gif
            [title] => title2
        ))

解决方案 »

  1.   

    调用后,显示不正确,我本来上传了很多图片,但是只显示出来两张,而且显示出来这两张我用查看源码时,title的值为空。在下面的调用页面的JS是不是也要做修改??怎么改??
    <script>
    $(document).ready(function () {
    $(".colorboxEx").each(function (i, el) {
    $(el).justifiedGallery({rel: 'gal' + i}).on('jg.complete', function () {
    $(this).find('a').colorbox({
    maxWidth : '80%',
    maxHeight : '80%',
    opacity : 0.8,
    transition : 'elastic',
    current : ''
    });
    });
    });
    });
    </script><div class="colorboxEx">
           {foreach from=$album_list item=pic}
    <a href="{$pic.src}">
    <img src="{$pic.src}" title="{$pic.title}" />
    </a>
          {/foreach}
    </div>
      

  2.   

    你是否每张图片都有title标记?并且title是放在src后面。
      

  3.   

    可能不是JS的事,因为我把那段JS删掉,也是一样只显示两张没有title值的图片
      

  4.   

    没有每张都title,有些有,有些没有
      

  5.   

    加上title试试。没有的加上title=""
      

  6.   

    刚刚加上了,也只显示一部分,我试了一下,分别把title的值设为1,2,3,4,5,6,7,8,但是只显示了2,4,6,8
      

  7.   

    如果不确定是否每张图都有title标记,需要二次正则获取。
    修改如下:function get_pic_list($content='')
    {
        $pattern="/<img.*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?>/"; 
        preg_match_all($pattern,$content,$match);     $arr_pic = array();
        $i = 0;
        for($i=0,$len=count($match[1]); $i<$len; $i++){
            $arr_pic[$i]['src'] = $match[1][$i];
            preg_match('/title=[\'|\"](.*?)[\'|\"]/', $match[0][$i], $match1);
            $arr_pic[$i]['title'] = isset($match1[1])? $match1[1] : '';
        }
        return $arr_pic;
    }$content =<<<TXT
    <a href="#" class="drop_toggle btn_1 " rel='nofollow'>
    <span>
      <img src="/assets/ico_set.gif" alt="" title="title1" />管理菜单<img src="/assets/arrow_down.gif" alt="" title="title2" />
      <img src="/assets/arrow_down123.gif" alt="" />
    </span>
    </a>
    TXT;$result = get_pic_list($content);print_r($result);
    Array
    (
        [0] => Array
            (
                [src] => /assets/ico_set.gif
                [title] => title1
            )    [1] => Array
            (
                [src] => /assets/arrow_down.gif
                [title] => title2
            )    [2] => Array
            (
                [src] => /assets/arrow_down123.gif
                [title] => 
            ))
      

  8.   

    如果还有问题,可以把$content发出来看看。