下载鸥 > 网站下载 > 开发教程 > 帝国CMS

帝国CMS二次开发将文章系统模型的内容存文本转存数据库方法

983 2020-11-21 12:46:44

收藏

简述

通过编写新方法,将帝国CMS文章系统模型的内容存文本转存数据库。

之前存文本的数据是用的默认的文章模型,newstext字段存储在主表,现在需要将其转换为数据库格式,存储在副表,多亏“夏威夷海盗”的帖子,http://bbs.phome.net/showthread-13-81898-0.html
参考这篇帖子的方法做了测试,基本上是可以的,但是存在问题,主要是php的file函数将文本读取后是以数组形式存在的,几乎每段文字存储到一个数组字段中,按照帖子提供的方案最终只能转化第一个数组中的第一位,后来参考帝国程序提供的几个函数稍加修改,完成了这个工作。

代码如下

<?php
error_reporting(E_ERROR|E_WARNING|E_PARSE);
@set_time_limit(1000000);//设置超时时间,越长越好
//*********************程序开始********************
//说明:需要现在帝国后台模型设置的地方,在附表设置一个newstext1字段,等数据导入成功之后,再将原newstext字段删除,并将newstext1字段修改为newstext。
//400条数据,大概也就一秒钟左右;
$kai=$_POST['kai'];
functionReadFiletext($filepath){
    $filepath=trim($filepath);
    $htmlfp=@fopen($filepath,"r");
    $string=@fread($htmlfp,@filesize($filepath));
    @fclose($htmlfp);
    return$string;
}
functionGetTxtFieldText($pagetexturl){
    $text=ReadFiletext($pagetexturl);
    $text=substr($text,12);//去除exit
    return$text;
}
//配置数据库参数
mysql_connect("localhost","root","");//本机数据库用户名和密码
mysql_select_db("mydatabase");//本机数据库名,
mysql_query("setnames 'utf8'");

//数据表第一条信息的ID
$a=mysql_query("selectidfromwecms_articleorderbyidasclimit1");
$num1=mysql_result($a,0);
//数据表最后一条信息的ID
$b=mysql_query("selectidfromwecms_articleorderbyiddesclimit1");
$num2=mysql_result($b,0);
if($kai==1){
    //循环逐条处理
    for($i=$num1;$i<$num2;$i++){
        $sql="selectnewstextfromwecms_articlewhereid=".$i;
        if($result=mysql_query($sql)){
            $r=mysql_fetch_object($result);
            $text=$r->newstext;
            //判断是否是存文本的信息
            if(strlen($text)==42&&preg_match("/^[0-9a-zd/]*$/i",$text)){
                $pagetexturl="d/txt/".$text.".php";//因为帝国存文本中有exit中断,所以需要用读文件的方法去读取代码,文本的路径要正确,存在本文件所以目录下的子目录"d/txt/"下
                $text=GetTxtFieldText($pagetexturl);
                //过滤帝国存文本生成的exit中断代码,使用文本中的内容替换数据库中相应的数据值
                $wurl="updatewecms_article_data_1setnewstext1='".$text."'whereid=".$i;
                $write=mysql_db_query("mydatabase",$wurl);
            }
        }
    }
    echo"OK,搞定!";
}
?>
<formmethod="post" action="index9.php">
    <input type='submit' name='ok' value="从<?=$num1?>开始处理,到<?=$num2?>结束.点击开始处理">
    <input type=hidden name="kai" value=1>
</form>

 

本文地址:https://xzo.com.cn/develop/empire/121.html

有帮助,很赞!

信息来源:精准像素
导出教程 下载word版教程
发表评论 共有条评论
关于帝国CMS


帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用

当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。

推荐帝国CMS开发教程
帝国CMS百度推送插件怎样将默认ID排序改为时间倒序?
帝国CMS百度推送插件怎样将默认ID排序改为时间倒序?

很多采集站点可能是这样操作的:采集好的资讯时间是采集时间,到了发布的时候会...

19 619
帝国CMS怎样做百万、千万级别数据库的网站?
帝国CMS怎样做百万、千万级别数据库的网站?

帝国CMS作为最强大的开源cms之一,其程序效率毫无疑问。但,帝国CMS真的可以做...

19 1304
帝国CMS文章页的seo标题在哪里?
帝国CMS文章页的seo标题在哪里?

很多朋友用惯了织梦CMS,转到帝国之后就非常困惑,因为织梦CMS的文章是有一个se...

1 406
网上下载的帝国CMS免费模板,怎样防止后门与挂马?
网上下载的帝国CMS免费模板,怎样防止后门与挂马?

帝国CMS是一款相当安全的开源cms程序,如果使用规范的模板,一般是不会被挂马的...

7 1044
帝国CMS文章配图怎样设置自动添加水印?
帝国CMS文章配图怎样设置自动添加水印?

现在采集网站非常多,不止采集内容,还采集图片,还不标注出处,非常可恶。那么,帝国...

1 475
帝国cms制作信息反馈表的方法
帝国cms制作信息反馈表的方法

帝国cms自带的信息反馈功能,不仅可以实现留言功能,还可以实现像在线报名、反...

1 512
帝国cms怎样制作多语言数据包?
帝国cms怎样制作多语言数据包?

许多帝国cms带有多语言版本,如果每个语言都添加一次程序,不仅开发比较麻烦,维...

0 360
帝国cms怎样开通在线QQ客服无好友聊天
帝国cms怎样开通在线QQ客服无好友聊天

QQ客服是很多帝国cms网站的在线客服方案,开通QQ客服没有门槛,而且接收信息方...

0 501
推荐插件
帝国cms百度AI图像清晰度增强api接口对接插件
帝国cms百度AI图像清晰度增强api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像清晰度增强的功能。经...

0 477
帝国cms访问统计ip地址链接与封禁插件下载
帝国cms访问统计ip地址链接与封禁插件下载

下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...

0 936
帝国cms自动生成文章新闻目录插件下载
帝国cms自动生成文章新闻目录插件下载

用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...

0 1045
帝国cms在线考试系统模板插件
帝国cms在线考试系统模板插件

一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...

0 1219
帝国cms智能自动审核按星期几审核指定栏目带推送插件
帝国cms智能自动审核按星期几审核指定栏目带推送插件

采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...

0 1199
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...

0 496
帝国cms百度AI黑白图像上色api接口对接插件
帝国cms百度AI黑白图像上色api接口对接插件

百度开放了系列AI功能api如图像上色、图像去雾、图像修复、无损放大、清晰...

0 365
帝国cms纳米数据接口(足球比赛中最新数据)
帝国cms纳米数据接口(足球比赛中最新数据)

帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...

0 284
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入