zoukankan      html  css  js  c++  java
  • php 拆分txt小说章节保存到数据库

    $xs_capter_list = [];
                $xs_content_list = [];
                set_time_limit(0);//0表示不限时
    
                $file = fopen('txt小说地址', "r");
                $i = 0;//行数
                $j = 1; //章节数
                $content = '';
                $chaptertitle ='';
                //输出文本中所有的行,直到文件结束为止。
                while(true) {
                    if(feof($file)){
                        //文章结尾
                        if($content!='' && $chaptertitle!=''){
                            $content = strtr($content,["
    " => '<br>']);
                            $content = mb_substr($content,49);//去掉前49个广告字符
                            $xs_content_list[] = $content;
                            //成功后
                            break;
                        }
                        break;
                    }else{
                        $now = fgets($file);
                        $now = mb_convert_encoding($now,'UTF-8','UTF-8,GBK,GB2312,BIG5');//使用该函数对结果进行转码
                        //var_dump($now);
                            if(strpos($now,'第')!==FALSE and strpos($now,'章')!==FALSE){
                                //判断上一层循环
                                if($content!='' && $chaptertitle!=''){
                                    //执行插入操作
                                    $content = strtr($content,["
    " => '<br>']);
                                    $content = mb_substr($content,49);//去掉前49个广告字符
                                    $xs_content_list[] = $content;
                                    //成功后
                                    $content = '';
                                    $chaptertitle = strtr($now,["
    " => '']);
                                    //var_dump($chaptertitle);
                                    $j++;
                                }else{
                                    $content .= $now;
                                    $chaptertitle = strtr($now,["
    " => '']);
                                }
    
                                $xs_capter_list[] = $chaptertitle;
                                //die();
    
    
                            }else{
                                $content .= $now;
                            }
    
                    }
    
                    $i++;
                }
    
                foreach($xs_capter_list as $key=>$v){
                    $chapter['content'] = $xs_content_list[$key];
                    $chapter['total'] = mb_strlen($xs_content_list[$key]);;
    
                    $chapter_id = $this->sql('xs.nh_chapter')->insertId($chapter);
    
                }

    临时写的代码,比较乱,还有待于优化。

    思路是一行一行的读取txt文本,利用小说 “第三章 桌下的手”  这种类似的关键字来分拆章节

    最后生成两个数组 

    $xs_capter_list和
    $xs_content_list 来分别保存标题和内容,然后写入数据库
  • 相关阅读:
    mysql 添加索引 mysql 如何创建索引
    给MongoDB添加索引
    Istio流量管理实现机制深度解析
    Oracle E-Business Suite R12.1.x Installation And Upgrade Guide Step by Step
    XXX 不是当前用户的有效责任,请联系您的系统管理员
    EBS报错FRM-92095:Oracle JInitiator版本太旧,请安装版本1.1.8.2或更高版本
    Oracle 表类型变量的使用
    Oracle物化视图
    Oracle EBS
    Oracle释放高水位线
  • 原文地址:https://www.cnblogs.com/tingfengqieyu/p/8631257.html
Copyright © 2011-2022 走看看