帝国论坛帝国网站管理系统交流区帝国CMS使用交流求助,帝国CMS图片调用的问题 【本版专题贴子】  
主题:求助,帝国CMS图片调用的问题 [加入收藏夹]   

dgcms888888
用户头衔:举人

精华贴   :0
发贴数   :150
经验值   :785
注册时间:2017-03-24
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
求助,帝国CMS图片调用的问题
朋友们早上好!

场景:我最近做了一个插件,需要调用文章图片。

问题:例如,文章中有四张图片,它总是调出2张,其他2张调不出来,而且调出来的2张图片是紧挨着的,分不开。

请教:该如何操作,使图片全部调出来,并且使图片均匀分布在文章段落中,而不是都聚在文章末尾,希望懂的朋友给一个方法,用什么方式和标签才行,感谢。




2024-09-29 07:39:49 已设置保密 顶部 回复 引用 报告 编辑 删除

tm2014
用户头衔:探花

精华贴   :0
发贴数   :2550
经验值   :7251
注册时间:2014-11-13
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

用正则获取图片地址




2024-09-29 07:56:41 已设置保密 顶部 回复 引用 报告 编辑 删除

tm2014
用户头衔:探花

精华贴   :0
发贴数   :2550
经验值   :7251
注册时间:2014-11-13
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

或者查询附件表获取




2024-09-29 07:57:05 已设置保密 顶部 回复 引用 报告 编辑 删除

jiuhecai
用户头衔:探花

精华贴   :0
发贴数   :3167
经验值   :9085
注册时间:2014-07-02
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

总体思路是这样的:



```php
<?php
// 假设这是你的HTML内容
$htmlContent = <<<HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <p>这是第一段。</p>
    <p>这是第二段。</p>
    <p>这是第三段。</p>
    <p>这是第四段。</p>
    <p>这是第五段。</p>
</body>
</html>
HTML;

// 将HTML内容按<p>标签分割
$paragraphs = explode('</p>', $htmlContent);

// 假设这是给定的图片URL
$images = [
    'http://example.com/image1.jpg',
    'http://example.com/image2.jpg',
    'http://example.com/image3.jpg',
    'http://example.com/image4.jpg'
];

// 计算段落数量
$paragraphCount = count($paragraphs);

// 计算图片数量
$imageCount = count($images);

// 插入图片
for ($i = 0; $i < $imageCount; $i++) {
    // 计算插入位置
    $insertIndex = floor(($paragraphCount - 1) * ($i / ($imageCount - 1)));
    // 插入图片
    $paragraphs[$insertIndex] .= '<img src="' . $images[$i] . '" alt="Image" />';
    // 如果不是最后一张图片,添加一个新的段落
    if ($i < $imageCount - 1) {
        $paragraphs[$insertIndex] .= '</p><p>';
    }
}

// 重新组合HTML内容,并添加最后一个</p>标签
$newHtmlContent = implode('</p>', $paragraphs) . '</p>';

// 输出新的HTML内容
echo $newHtmlContent;
?>
```

这段代码首先计算段落数量和图片数量。然后,它使用一个循环来遍历每张图片,并计算每张图片应该插入的位置。插入位置是通过将段落数量减1,然后乘以当前图片索引除以图片总数减1来计算的,这样可以将图片均匀地分散到段落中。

在循环中,每张图片被插入到计算出的位置,并且在图片后面添加一个新的 `<p>` 标签,除非它是最后一张图片。

最后,使用 `implode` 函数将修改后的段落数组重新组合成HTML内容,并输出。

这种方法可以处理任意数量的图片(只要不超过段落数量),并且能够将图片均匀地分散到段落中。



帝国插件 插件定制。帝国临时工。查杀顽固木马。专业解决难题。qq--110102296
2024-09-29 08:00:04 已设置保密 顶部 回复 引用 报告 编辑 删除

dgcms888888
用户头衔:举人

精华贴   :0
发贴数   :150
经验值   :785
注册时间:2017-03-24
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

感谢朋友们帮忙解答,我试试。




2024-09-29 08:19:08 已设置保密 顶部 回复 引用 报告 编辑 删除

cnnb
用户头衔:探花

精华贴   :0
发贴数   :5952
经验值   :16974
注册时间:2008-10-14
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

同意2楼




2024-09-30 07:35:24 已设置保密 顶部 回复 引用 报告 编辑 删除

csdn2
用户头衔:探花

精华贴   :0
发贴数   :4705
经验值   :13842
注册时间:2013-11-21
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

2楼正解




2024-10-02 06:46:02 已设置保密 顶部 回复 引用 报告 编辑 删除

hibaidu
用户头衔:探花

精华贴   :0
发贴数   :4005
经验值   :12197
注册时间:2010-05-26
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

学习一下




2024-12-30 08:11:40 已设置保密 顶部 回复 引用 报告 编辑 删除

cighsen02
用户头衔:进士

精华贴   :0
发贴数   :970
经验值   :3686
注册时间:2009-09-29
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

搞不定可以联系,开发插件时做到的功能,生成word 类似功能,能实现比这个复杂的功能



要上就上安心站长 www.axzz.cn q:365182575
2024-12-30 10:36:13 已设置保密 顶部 回复 引用 报告 编辑 删除

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1