首页 > 后端开发 > php教程 > 如何读取<img>里的title

如何读取<img>里的title

WBOY
发布: 2016-06-23 13:44:44
原创
1295 人浏览过

在下面的函数中,读取了src,请问如何再读取如何读取<img>里的title里的title
function get_pic_list($content='')
{
$pattern="/如何读取<img>里的title/"; 
preg_match_all($pattern,$content,$match); 

$arr_pic = array();
$i = 0;
foreach($match[1] as $imgsrc)
{
$arr_pic[$i]['src'] = $imgsrc;
$i++;
}

return $arr_pic;
}


回复讨论(解决方案)

看看是否这样

function get_pic_list($content=''){    $pattern="/<img .*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?title=[\'|\"](.*?)[\'|\"].*?[\/]? alt="如何读取<img>里的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        ))
登录后复制

调用后,显示不正确,我本来上传了很多图片,但是只显示出来两张,而且显示出来这两张我用查看源码时,title的值为空。

在下面的调用页面的JS是不是也要做修改??怎么改??
<script> <br /> $(document).ready(function () { <br /> $(".colorboxEx").each(function (i, el) { <br /> $(el).justifiedGallery({rel: 'gal' + i}).on('jg.complete', function () { <br /> $(this).find('a').colorbox({ <br /> maxWidth : '80%', <br /> maxHeight : '80%', <br /> opacity : 0.8, <br /> transition : 'elastic', <br /> current : '' <br /> }); <br /> }); <br /> }); <br /> }); <br /> </script>


{foreach from=$album_list item=pic}

如何读取<img>里的title

{/foreach}

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

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

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

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

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

是隔一个显示一个

如果不确定是否每张图都有title标记,需要二次正则获取。
修改如下:

function get_pic_list($content=''){    $pattern="/<img .*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*? alt="如何读取<img>里的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];        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] =>         ))
登录后复制

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

可以了,谢谢

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板