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,["\r\n" => '<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,["\r\n" => '<br>']);
                                $content = mb_substr($content,49);//去掉前49個廣告字符
                                $xs_content_list[] = $content;
                                //成功后
                                $content = '';
                                $chaptertitle = strtr($now,["\r\n" => '']);
                                //var_dump($chaptertitle);
                                $j++;
                            }else{
                                $content .= $now;
                                $chaptertitle = strtr($now,["\r\n" => '']);
                            }

                            $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 來分別保存標題和內容,然后寫入數據庫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM