欢迎您光临自学哈网,只为分享网络知识教程,供大家学习参考!

「自学哈网」帝国cms里如何提取内容里的第一张图片为标题 图片

作者 : 自学哈 本文共1016个字,预计阅读时间需要3分钟 2022-11-26 共107人阅读
也想出现在这里? 联系我们

如何批量从帝国CMS的内容字段提取图片,作为标题图片?办法很多,可以用字段函数, 可以在内容模板里的加php代码处理,也可以用二开助手方便准确的完成。但是,总有那么一些大牛人,希望执行sql语句,一键搞定。
假定内容字段为newstext,存在副表中,假定是新闻表。那么副表就是[!db.pre!]ecms_news_data_1,主表是 [!db.pre!]ecms_news。
需要考虑以下几点:
1. 数据表的newstext内容,不是纯洁的,是用addslashes函数处理过的。
2. 假定 newstext的html代码正规,图片具体这样的格式 src="***.jpg" ,那么在数据库中是这样存储的 src=\"***.jpg\"
3.  反斜杠真是个讨厌的东西,可是我们离不了他,在mysql语句中,我们用一个函数 来生成字符串\",这个函数就是char(92,34)
看语句:
update [!db.pre!]ecms_news_data_1 a, [!db.pre!]ecms_news b set b.titlepic=concat(replace(SUBSTRING_INDEX(SUBSTRING_INDEX(a.newstext, 'src=', -1),'.jpg',1),char(92,34),''),'.jpg') where a.newstext like '%.jpg%' and b.titlepic='' and a.id=b.id;

他可以取出newstext字段中的,最后一张图片,如果标题图片为空的话,就用这图片了。

类似的,如果取第一张图片,应该使用代码

update [!db.pre!]ecms_news_data_1 a, [!db.pre!]ecms_news b set b.titlepic=concat(replace(SUBSTRING_INDEX(SUBSTRING_INDEX(a.newstext, '.jpg', 1),'src=',-1),char(92,34),''),'.jpg') where a.newstext like '%.jpg%' and b.titlepic='' and a.id=b.id;

本站声明:
本站所有资源来源于网络,分享目的仅供大家学习和交流!如若本站内容侵犯了原著者的合法权益,可联系邮箱976157886@qq.com进行删除。
自学哈专注于免费提供最新的分享知识、网络教程、网络技术的资源分享平台,好资源不私藏,大家一起分享!

自学哈网 » 「自学哈网」帝国cms里如何提取内容里的第一张图片为标题 图片
也想出现在这里? 联系我们
© 2022 Theme by - 自学哈网 & WordPress Theme. All rights reserved 浙ICP备2022016594号