如何在织梦DedeCMS中有效提取文章正文内的图片?

织梦DedeCMS中,要调取文章正文图片,可以使用系统内置标签。,,具体步骤如下:,,1. 在后台登录后,进入“模板管理” > “模板解析/标签手册”。,2. 找到“获取内容图片”的标签,复制其代码。,3. 在需要显示图片的地方插入该标签即可。,4. 保存修改并更新页面。,,这样就可以成功调取文章正文中的图片了。

DedeCMS(织梦内容管理系统)中,调取文章正文中的图片可以通过多种方法实现,以下是几种常见的方法:

如何在织梦DedeCMS中有效提取文章正文内的图片?

方法一:调用全部图片

1、环境准备:确保织梦版本为DedeCMS V5.7 SP1正式版或以上,PHP版本为7.0.2或通用版本,MySql版本为5.6或5.2以上。

2、代码实现

找到文件:include/extend.func.php

在文件最下方添加以下代码:

“`php

function Getimgs($aid, $num = 0, $style = ”){

global $dsql;

$imgurls = ”;

//$row = $dsql > getone("Select body Fromdede_addonarticle where aid=’$aid’"); //若数据库前缀为dede_,则注释此行

$row = $dsql > getone("Select body From#@__addonarticle where aid=’$aid’");

$imgurls = $row[‘body’];

preg_match_all("/<[img|IMG].*?src="(.*?)".*?/>/", $imgurls, $wordcount);

$count = count($wordcount[1]);

if ($num > $count || $num == 0)

{

$num = $count;

}

for($i = 0;$i < $num;$i++){

if($style == ‘li’)

{

$imglist .='<li><a href="#’.$i.’"><img src="’. trim($wordcount[1][$i]) .’" /></a></li>’;

}else{

$imglist .= ‘<img src="’. trim($wordcount[1][$i]) .’" />’;

}

}

return $imglist;

}

“`

3、调用方式:在需要调用图片的地方使用以下标签:

“`html

{dede:field.id function=Getimgs(@me,5,’li’)/}

“`

其中几个实参 @me(文章id), 5(调用图片数量), ‘li'(两种样式)。

方法二:调用第一张图片

1、修改include/helpers/archive.helper.php文件

在文件最后添加以下代码:

“`php

/

* 获得某文档的第一个图片

如何在织梦DedeCMS中有效提取文章正文内的图片?

* @param int $aid 文档id

* @return string

*/

if( ! function_exists(‘GetImgs’))

{

function GetImgs($aid)

{

global $dsql;

$query = "select body FROMdede_addonarticle where aid=’$aid’";

$dsql>Execute(‘body’,$query);

$row = $dsql>GetArray(‘body’);

preg_match(‘/<img(.*)>/i’,$row[‘body’],$str);

$GImgs = $str[0];

return $GImgs;

}

}

“`

2、调用方式:在模板中的调用方法为:

“`html

[field:id function=GetImgs(@me)/]

“`

或者:

“`html

{dede:field name=’litpic’ function="firstimg(@me)"/}

“`

方法三:列表页调用文章正文内容

1、使用dede:arclist标签

在模板中使用以下代码:

“`html

{dede:arclist flag=’h’ row=’10’}

<h1><a href='[field:arcurl/]’>[field:title/]</a></h1>

<p>[field:id runphp=’yes’] $aid = @me; $row = $GLOBALS[‘dsql’]>GetOne("Select body From ‘dede_addonarticle’ where aid=’$aid’ "); @me = cn_substr(strip_tags("{$row[‘body’]}"),400);[/field:id]<a href='[field:arcurl/]’>【阅读详细】</a></p>

{/dede:arclist}

“`

这种方法可以调用文章内容的一部分,通过调整数字400来设置需要调用的内容长度。

方法四:调用文章第一张图片(非缩略图)

1、修改include/extend.func.php文件

在文件末尾添加以下代码:

“`php

function GetFirstImg($arcid){

如何在织梦DedeCMS中有效提取文章正文内的图片?

global $dsql;

$query= "SELECT body FROMdede_addonarticle where aid=’$arcid’";

$row = $dsql>GetOne($query);

preg_match_all("/<img.*?src=[/’/"](.+?)[/’/"].*?>/i", $row[‘body’], $match);

return $match[1][0];

}

“`

2、调用方式:在模板中的调用方法为:

“`html

{dede:field name=’litpic’ function="GetFirstImg(@me)"/}

“`

这种方法可以直接调用文章的第一张图片。

FAQs

1、如何在文章中调用多张图片?

可以使用第一种方法,通过在include/extend.func.php文件中添加Getimgs函数,然后在模板中调用该函数,并指定调用图片的数量和样式,调用五张图片并以li列表形式展示,可以在模板中使用{dede:field.id function=Getimgs(@me,5,'li')/}

2、如何调用文章的第一张图片而非缩略图?

可以通过修改include/helpers/archive.helper.php文件,添加GetImgs函数,并在模板中调用该函数,如[field:id function=GetImgs(@me)/],另一种方法是修改include/extend.func.php文件,添加GetFirstImg函数,并在模板中调用该函数,如{dede:field name='litpic' function="GetFirstImg(@me)"/},这两种方法都可以实现调用文章的第一张图片。

在织梦DedeCMS中调取文章正文图片,可以通过以下步骤进行:

1. 确定图片标签

需要确认文章正文中的图片是通过哪种方式插入的,织梦DedeCMS中,图片通常是通过<img>标签插入的,以下是几种常见的图片插入方式:

纯HTML方式:使用<img>标签直接插入图片。

编辑器方式:使用织梦自带的编辑器(如Ueditor、FCKeditor等)插入图片。

2. 使用模板标签

织梦DedeCMS的模板标签可以方便地获取文章内容中的图片,以下是一些常用的模板标签:

{dede:field.name/}:获取文章的字段值,如标题、内容等。

{dede:field.image/}:获取文章中第一张图片的地址。

示例:

获取文章内容中第一张图片:

<img src="{dede:field.image/}" alt="{dede:field.title/}" />

获取文章内容中所有图片:

{dede:field.content/}
<!在这里可以通过正则表达式或其他方法提取图片标签 >

3. 使用正则表达式

如果需要从文章内容中提取所有图片,可以使用正则表达式来匹配<img>

示例(使用PHP):

<?php
// 获取文章内容
$content = '{dede:field.content/}';
// 使用正则表达式匹配所有图片
preg_match_all('/<img.*?src="([^"]*)".*?>/i', $content, $matches);
// 输出所有图片地址
foreach ($matches[1] as $imgUrl) {
    echo "<img src="$imgUrl" />";
}
?>

4. 注意事项

权限与安全:确保访问文章内容的用户有相应的权限,并且注意防止XSS攻击。

图片尺寸:可能需要根据实际需求调整图片尺寸。

响应式设计:如果网站采用响应式设计,需要确保图片在不同设备上都能正常显示。

通过以上步骤,您应该能够从织梦DedeCMS中成功调取文章正文图片。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1119886.html

(0)
未希的头像未希新媒体运营
上一篇 2024-10-01
下一篇 2024-10-01

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入