当前目录:帝国CMS教程

帝国cms【实测】提取内容图片 提取内容图片alt标签

帝国CMS教程 2025-04-03 15:31:41

帝国cms【实测】提取内容图片 提取内容图片alt标签,内容页轮播 编辑器自动输出多张图片轮播 编辑多图轮播 内容页多张图片输出显示。 此版本是由于后台src跟alt发布后台代码顺序不同调整。不然会导致alt名字不对应图片 下面是修正版的。

帝国cms【实测】提取内容图片 提取内容图片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]