14 999 2020-11-21 12:46:44
收藏之前存文本的数据是用的默认的文章模型,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

如果您认可我们的分享,有意与我们合作开展帝国cms网站建设与开发业务或插件定制,请联系右侧在线客服。我们能给您的,就是高质量的模板与售后。
标注了信息来源为下载鸥的文章皆为原创,如果是转载的优质文章,我们也都标注了出处。如果您喜欢我们的文章,请按照下载鸥所标注的文章出处进行标注,谢谢您的配合。

帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用。
当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。
经常会有用户朋友反馈说新建的栏目页面怎么不对,或者说新建栏目怎么乱码了?总...
网站的点赞代表用户对网站内容的认可,点赞数越高代表质量越高,对于提升用户体...
帝国CMStag作为聚合页,应用十分广泛。但作为聚合页,配图往往是必不可少的。帝...
帝国CMS有两大标签,其中一个叫万能标签,另一个叫灵动标签,两个标签用法截然不...
在线留言是我们常用的功能,通过开发一个简单的留言板,我们可以有效与潜在用户...
json数据由于其高效、强兼容性的特质受到许多开发者的青睐,帝国cms开发一个...
帝国cms删除文章时往往非常彻底,不仅删除了数据库里的文章信息、生成的页面,...
帝国cms刷新栏目页后会自动生成全部栏目列表,但几天在处理客户站点时发现出...
许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...
帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...
帝国cms有自带的给关键词添加内链功能,但需要手动添加关键词,容易出现疏漏和...
通过本插件,可以实现帝国cms网站对接百度云api实现图像清晰度增强的功能。经...
本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...
一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...
使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...
采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...