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

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

914 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怎样让一条信息具有多个模板?
帝国CMS怎样让一条信息具有多个模板?

帝国CMS的信息是绑定内容模板的,通过本教程可以实现在前台自由使用不同的模...

17 490
帝国cms后台信息列表标题显示不完怎么办?
帝国cms后台信息列表标题显示不完怎么办?

帝国CMS后台信息列表标题文字字数默认是被控制过的,超出一行会截断,一些相对...

15 623
帝国CMS新手入门用万能标签还是灵动标签比较快?
帝国CMS新手入门用万能标签还是灵动标签比较快?

帝国CMS有两大标签,其中一个叫万能标签,另一个叫灵动标签,两个标签用法截然不...

1 385
帝国CMS开发的网站怎样修改网站标题关键词和描述?
帝国CMS开发的网站怎样修改网站标题关键词和描述?

在网站运营的过程中,由于业务的变更或是优化的需要,可能需要修改网站的标题,关...

1 387
帝国cms某个栏目使用完全自定义的分页功能
帝国cms某个栏目使用完全自定义的分页功能

帝国CMS列表页的分页函数是用系统设置中的分页函数,修改都是在系统设置里进...

0 613
帝国cms外部引入百度统计代码防止被刷统计后台广告优化
帝国cms外部引入百度统计代码防止被刷统计后台广告优化

百度统计后台的广告十分猖獗,而百度统计提供的屏蔽规则并不好用,这个时候,我们...

0 364
帝国cms怎样分享到微信好友、朋友圈带图片与简介
帝国cms怎样分享到微信好友、朋友圈带图片与简介

微信作为我们的国民app流量很大,简单的js分享往往只有一个二维码或者链接,但...

8 307
帝国cms根据关键词调用相关文章,每个关键词调用4条
帝国cms根据关键词调用相关文章,每个关键词调用4条

帝国cms根据关键词调用相关文章,每个关键词调用信息不超过4条,如果关键词和栏...

8 364
随机帝国CMS开发教程
sys_ResizeImg函数压缩图片用法大合集
sys_ResizeImg函数压缩图片用法大合集

sys_ResizeImg()是一个非常好用的函数,通过使用本函数,我们可以实现对图片的...

13 377
帝国CMS二次开发压缩与解压缩功能使用教程
帝国CMS二次开发压缩与解压缩功能使用教程

在使用帝国CMS建站,用到压缩与解压缩功能的很少,所以很少相关的文章。使用这...

0 373
帝国CMS二次开发回复后可见功能开发
帝国CMS二次开发回复后可见功能开发

参考修改的官方的loginjs.php文件后,做出帝国CMS二次开发回复后可见功能。本...

0 366
帝国CMS怎样用灵动标签调用当前信息栏目名称和链接?
帝国CMS怎样用灵动标签调用当前信息栏目名称和链接?

帝国CMS怎样用灵动标签调用当前信息栏目名称和链接?灵动标签调用代码如下。...

0 568
帝国CMS二次开发按tags分类调用标签教程
帝国CMS二次开发按tags分类调用标签教程

帝国CMS按tags分类调用标签代码...

0 322
灵动标签给指定的索引数据添加样式
灵动标签给指定的索引数据添加样式

很多色彩丰富的站点不喜欢一成不动的调用,而是喜欢每一次展现都有些不同。这...

7 384
帝国CMS二次开发调用指定tags分类下的信息
帝国CMS二次开发调用指定tags分类下的信息

帝国CMS调用指定tags分类信息代码...

0 345
帝国CMS二次开发用PHP来替换newsnav功能
帝国CMS二次开发用PHP来替换newsnav功能

官方默认的newsnav标签虽然可以实现面包屑导航的功能,但是就是太死板,想调试...

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