帝国论坛帝国网站管理系统交流区帝国CMS使用交流内容存文本转数据库处理方案改进版 【本版专题贴子】  
 1/6     1 2 3 4 5 6 ›› ›|
主题:内容存文本转数据库处理方案改进版 [加入收藏夹]   

nosun
用户头衔:秀才 *

精华贴   :0
发贴数   :64
经验值   :487
注册时间:2012-02-13
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
内容存文本转数据库处理方案改进版
之前存文本的数据是用的默认的文章模型,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'];

function ReadFiletext($filepath){
        $filepath=trim($filepath);
        $htmlfp=@fopen($filepath,"r");
        $string=@fread($htmlfp,@filesize($filepath));
        @fclose($htmlfp);
        return $string;
}

function GetTxtFieldText($pagetexturl){
        $text=ReadFiletext($pagetexturl);
        $text=substr($text,12);//去除exit
        return $text;
}
//配置数据库参数
mysql_connect("localhost","root","");//本机数据库用户名和密码
mysql_select_db("mydatabase");//本机数据库名,
mysql_query("set names 'utf8'");

//数据表第一条信息的ID
$a=mysql_query("select id from wecms_article order by id asc limit 1");
$num1= mysql_result($a,0);

//数据表最后一条信息的ID
$b=mysql_query("select id from wecms_article order by id desc limit 1");
$num2= mysql_result($b,0);

if ($kai==1){
//循环逐条处理
for($i=$num1;$i<$num2;$i++){
        $sql="select newstext from wecms_article where id=".$i;

        if($result=mysql_query($sql)){
                $r=mysql_fetch_object($result);
                $text=$r->newstext;

                //判断是否是存文本的信息
                if (strlen($text)==42 && preg_match("/^[0-9a-z\d\/]*$/i",$text)){       
       
                $pagetexturl="d/txt/".$text.".php";//因为帝国存文本中有exit中断,所以需要用读文件的方法去读取代码,文本的路径要正确,存在本文件所以目录下的子目录"d/txt/"下
                $text=GetTxtFieldText($pagetexturl);

                //过滤帝国存文本生成的exit中断代码,使用文本中的内容替换数据库中相应的数据值
                $wurl="update wecms_article_data_1 set newstext1='".$text."' where id=".$i;
                $write=mysql_db_query("mydatabase",$wurl);
       
                }
        }
}        
echo "OK,搞定!";

}

?>
<form method="post" action="index9.php">
<input type=submit name=ok value="从<?=$num1?>开始处理,到<?=$num2?>结束.点击开始处理">
<input type=hidden name="kai" value=1>
</form>





qq:917670021
2012-09-15 15:09:40 已设置保密 顶部 回复 引用 报告 编辑 删除

bj114
用户头衔:探花

精华贴   :0
发贴数   :2807
经验值   :7816
注册时间:2012-04-09
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

支持




2012-09-15 18:12:34 已设置保密 顶部 回复 引用 报告 编辑 删除

小雪168
用户头衔:举人

精华贴   :0
发贴数   :199
经验值   :847
注册时间:2008-03-28
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

正需要,感谢




2012-09-15 19:48:26 已设置保密 顶部 回复 引用 报告 编辑 删除

唉唉唉唉唉
用户头衔:书生

精华贴   :0
发贴数   :28
经验值   :71
注册时间:2012-06-27
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

路过关注



制氧机 http://www.xinyao.com.cn/7F3A/7F3A.htm

2012-09-15 21:02:23 已设置保密 顶部 回复 引用 报告 编辑 删除

msliubin
用户头衔:书生

精华贴   :0
发贴数   :18
经验值   :45
注册时间:2012-05-30
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

谢谢分享 支持的



苏州妇科医院 http://www.sa120.com
苏州圣爱医院 http://www.szsayy.com
苏州男科医院 http://www.0512man.net
苏州专业男科 http://www.szsank.com
2012-09-16 08:53:25 已设置保密 顶部 回复 引用 报告 编辑 删除

mini
用户头衔:进士

精华贴   :0
发贴数   :1080
经验值   :3084
注册时间:2009-07-31
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

支持下




2012-09-16 10:10:15 已设置保密 顶部 回复 引用 报告 编辑 删除

vip
用户头衔:进士 *

精华贴   :0
发贴数   :513
经验值   :2322
注册时间:2005-03-11
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

支持7.0文本转数据库吗?




2013-08-15 10:51:40 已设置保密 顶部 回复 引用 报告 编辑 删除

为艺术而活着
用户头衔:举人

精华贴   :0
发贴数   :101
经验值   :693
注册时间:2008-09-01
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]
没用,虽然结果显示ok,但是newstext1依然是空的
没用,虽然结果显示ok,但是newstext1依然是空的




2019-02-08 02:48:05 已设置保密 顶部 回复 引用 报告 编辑 删除

455ax
用户头衔:探花

精华贴   :0
发贴数   :7144
经验值   :19055
注册时间:2007-05-29
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

支持一下




2019-02-08 08:26:17 已设置保密 顶部 回复 引用 报告 编辑 删除

59966
用户头衔:探花

精华贴   :0
发贴数   :8493
经验值   :21577
注册时间:2008-11-17
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

看着应该可以




2019-02-09 08:00:53 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/6     1 2 3 4 5 6 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1