帝国cms【实测】提取内容图片 提取内容图片alt标签,内容页轮播 编辑器自动输出多张图片轮播 编辑多图轮播 内容页多张图片输出显示。 此版本是由于后台src跟alt发布后台代码顺序不同调整。不然会导致alt名字不对应图片 下面是修正版的。
<?php
$newstext = stripcslashes($navinfor['newstext']);
preg_match_all('/<img.*?alt="(.*?)".*?src="(.*?)".*?>/is', $newstext, $matches, PREG_SET_ORDER);
$images = [];
$Imgno = 0;
foreach ($matches as $match) {
$imgSrc = $match[2];
$imgAlt = $match[1];
$images[] = [
'src' => $imgSrc,
'alt' => $imgAlt
];
}
foreach ($images as $image) {
$Imgno++;
?>
<a href="<?php echo htmlspecialchars($image['src']); ?>" target="_blank" class="swiper-slide">
<img src="<?php echo htmlspecialchars($image['src']); ?>" alt="<?php echo htmlspecialchars($image['alt']); ?>" />
<div>(<?php echo $Imgno; ?>) <?php echo htmlspecialchars($image['alt']); ?></div>
</a>
<?php
}
?>
下面是未修正版本的。可能会导致alt跟图片不对应导致 alt显示的名字是下一张图片的。
<?php
$newstext = stripcslashes($navinfor['newstext']); // 正文newstext数据
// 正则表达式,同时捕获src和alt属性的值
preg_match_all('/<img.*?src="(.*?)".*?alt="(.*?)".*?>/is', $newstext, $matches, PREG_SET_ORDER);
// 初始化图片数组和计数器
$images = [];
$Imgno = 0;
// 遍历匹配结果
foreach ($matches as $match) {
$imgSrc = $match[1]; // 图片URL
$imgAlt = $match[2]; // alt标签文本
// 将图片信息添加到数组中
$images[] = [
'src' => $imgSrc,
'alt' => $imgAlt
];
}
// 如果需要去重,可以在这里对$images数组进行去重处理
// 但由于每张图片的src通常应该是唯一的(除非有重复的图片),这里不再额外去重
// 循环输出每张图片及其对应的alt文本和序号
foreach ($images as $image) {
$Imgno++; // 增加图片计数器(也可以放在循环内部开头,根据个人喜好)
?>
<a href="<?php echo htmlspecialchars($image['src']); ?>" target="_blank" class="swiper-slide">
<img src="<?php echo htmlspecialchars($image['src']); ?>" alt="<?php echo htmlspecialchars($image['alt']); ?>" />
<div>(<?php echo $Imgno; ?>) <?php echo htmlspecialchars($image['alt']); ?></div>
</a>
<?php
}
?>
其他方法自己测试下,都能用
内容页轮播 编辑器自动输出多张图片轮播 编辑多图轮播 内容页多张图片输出显示。
<?php
$newstext = stripcslashes($navinfor['newstext']); //正文newstext数据
preg_match_all('/<img.*?src="(.*?)".*?>/is', $newstext, $ImgArr); //正则提取正文图片
$ImgArr = array_unique($ImgArr[1]); //图片如有复生将去重复
$Imgno = 0; //给定初始序号
foreach ($ImgArr as $v) { //判断有多少张图
$Imgno ++; //循环输出每一张图
?>
<a href="<?=$v?>" target="_blank"><img src="<?=$v?>" alt="" /></a>
<?php
}
?>
<?php
$newstext = stripcslashes($navinfor['newstext']); //正文newstext数据
preg_match_all('/<img.*?src="(.*?)".*?>/is', $newstext, $ImgArr); //正则提取正文图片
$ImgArr = array_unique($ImgArr[1]); //图片如有复生将去重复
$Imgno = 0; //给定初始序号
foreach ($ImgArr as $v) { //判断有多少张图
$Imgno ++; //循环输出每一张图
?>
<li> <a href="<?=$v?>" target="_blank"><img src="<?=$v?>" /></a> </li>
<?php
}
?>
多图字段调用:
<?php
$morepic = $navinfor['morepic'];
$title = $navinfor['title'];
$mpr = explode(egetzy('rn'), $morepic);
$mpcount = count($mpr);
?>
<div class="">
<ul>
<?php
for ($mpi = 0; $mpi < $mpcount; ++$mpi) {
$mp = explode('::::::', $mpr[$mpi]);
?>
<li>编号: <?=($mpi + 1)?> </li>
<li>标题: <?=$title?> </li>
<li>大图: <?=$mp[1]?> </li>
<li>小图: <?=$mp[0]?> </li>
<li> 图片说明: <?=$mp[2]?> </li>
<?php
}
?>
灵动标签调用:
[e:loop={'3,4',6,0,0,"",""}]
<?php
$morepic = $bqr['morepic'];
$title = $bqr['title'];
$mpr = explode(egetzy('rn'), $morepic);
$mpcount = count($mpr);
<div class="">
<ul>
<?php
for ($mpi = 0; $mpi < $mpcount; ++$mpi) {
$mp = explode('::::::', $mpr[$mpi]);
?>
<li>编号: <?=($mpi + 1)?> </li>
<li>标题: <?=$title?> </li>
<li>大图: <?=$mp[1]?> </li>
<li>小图: <?=$mp[0]?> </li>
<li> 图片说明: <?=$mp[2]?> </li>
<?php
}
?>
</ul>
</div>
?>
[/e:loop]