时间:2021-07-01 10:21:17 帮助过:4人阅读
看看是否这样
function get_pic_list($content=''){ $pattern="//"; 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;$result = get_pic_list($content);print_r($result);
Array( [0] => Array ( [src] => https://www.gxlcms.com/assets/ico_set.gif [title] => title1 ) [1] => Array ( [src] => https://www.gxlcms.com/assets/arrow_down.gif [title] => title2 ))
调用后,显示不正确,我本来上传了很多图片,但是只显示出来两张,而且显示出来这两张我用查看源码时,title的值为空。
在下面的调用页面的JS是不是也要做修改??怎么改??
{foreach from=$album_list item=pic}
{/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="//"; 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;$result = get_pic_list($content);print_r($result);
Array( [0] => Array ( [src] => https://www.gxlcms.com/assets/ico_set.gif [title] => title1 ) [1] => Array ( [src] => https://www.gxlcms.com/assets/arrow_down.gif [title] => title2 ) [2] => Array ( [src] => https://www.gxlcms.com/assets/arrow_down123.gif [title] => ))
如果还有问题,可以把$content发出来看看。
可以了,谢谢