Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk melaksanakan fungsi membaca novel dalam php

Bagaimana untuk melaksanakan fungsi membaca novel dalam php

藏色散人
Lepaskan: 2023-03-12 13:38:01
asal
2706 orang telah melayarinya

Cara melaksanakan fungsi membaca novel dalam PHP: 1. Parsing fail TXT dan jana kandungan bab 2. Dapatkan senarai bab dan laksanakan antara muka untuk mendapatkan kandungan bab.

Bagaimana untuk melaksanakan fungsi membaca novel dalam php

Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

Bagaimanakah php melaksanakan fungsi membaca novel?

php merealisasikan analisis bab novel TXT dan bacaan dalam talian bab novel

Untuk merealisasikan analisis bab teks TXT, idea umum adalah menambah ciri khusus kepada setiap aksara bab, dan kemudian baca bab berdasarkan kedudukan permulaan aksara. Di sini saya menulis projek membaca novel, yang juga berdasarkan idea ini.

Langkah pelaksanaan:

1. Menghuraikan fail TXT dan menjana kandungan bab

1. Edit fail TXT dan tambah rentetan yang ditentukan oleh saya sendiri untuk setiap nama bab pengenalan.

<.> 2. Kenali bab, dapatkan senarai bab

3. Mengikut rentetan tersuai, baca kandungan setiap bab dalam gelung, dan jana fail txt setiap bab

2. Dapatkan senarai bab dan laksanakan antara muka untuk mendapatkan kandungan bab

1. Antara muka senarai bab

2. Antara muka kandungan bab

Kod sumber:

1. Parsing fail TXT dan jana kandungan bab

<?php
header("content-type:text/html;charset=utf-8");

$artName = $_GET["artname"];

if(!$artName){
    echo "文件名没有哦";exit();
}

$fromFileName = "../".$artName.".txt";
if(!file_exists($fromFileName)){
    echo "源文件不存在啊";exit();
}

$distDirName = $artName;

$myfile = fopen($fromFileName, "r") or die("Unable to open file!");
$content = fread($myfile,filesize($fromFileName));
fclose($myfile);
echo "<br>读取原始文件成功..............";

$pattern=&#39;/#titlestart#(.*?)#titleend#/is&#39;;
preg_match_all ($pattern, $content, $result, PREG_PATTERN_ORDER);

echo "<br><br>文章目录识别成功..............<br><br>";

// 获取到目录
// 目录数组 $result[1]
$catalogStr = "";
$catalogArr = array();
foreach($result[1] as $v){
    array_push($catalogArr,$v);
    $catalogStr .= $v."#catalog#";
}

// 创建书本目录
$dir = iconv("UTF-8", "GBK", "./books/".$distDirName);
if (!file_exists($dir)){
    mkdir ($dir,0777,true);
    echo &#39;<br>创建文件夹bookdir成功<br><br>&#39;;
} else {
    echo &#39;<br>需创建的文件夹bookdir已经存在<br><br>&#39;;
}

// 生成目录文件
$myfile = fopen($dir."/catalog.txt", "w") or die("Unable to open file!");
fwrite($myfile, $catalogStr);
fclose($myfile);
echo "<br>==============================目录文件生成成功..............<br>";

// 获取到内容,写入文件
foreach($catalogArr as $k=>$v){
    $pattern=&#39;/#titlestart#&#39;.$v.&#39;#titleend#(.*?)#titlestart/is&#39;;
    preg_match ($pattern, $content, $result);

    $myfile = fopen($dir."/".($k+1).".txt", "w") or die("Unable to open file!");
    fwrite($myfile, $result[1]);
    fclose($myfile);
    echo "<br>===================文章第".($k+1)."章节写入成功..............";
}


echo "<br><br><br><br><br><br><br>====================书本识别成功...........................";



?>
Salin selepas log masuk
2. Dapatkan senarai bab dan laksanakan antara muka untuk mendapatkan kandungan bab

<?php
header(&#39;Content-Type:application/json&#39;);

$action = $_GET["act"];
$fileName = $_GET["artname"];

if(!$action){
    $rsp = array("code" => 500, "msg" => "请求不存在");
    $rsp = json_encode($rsp);
    echo $rsp;
    exit();
}else if(!$fileName){
    $rsp = array("code" => 500, "msg" => "书本不存在");
    $rsp = json_encode($rsp);
    echo $rsp;
    exit();
}

if($action == "getcat"){
    // 获取目录
    $fileName = "../books/".$fileName."/catalog.txt";

    // 读取文件
    if(file_exists($fileName)){
        $myfile = fopen($fileName, "r") or die("Unable to open file!");
        $content = fread($myfile,filesize($fileName));
        fclose($myfile);

        $code = 200;
        $msg = "读取目录成功";
        $catalogArray = array();
        if($content){
            $carray = explode(&#39;#catalog#&#39;,$content);

            foreach($carray as $k=>$v){
                if($v){
                    $item = array("index"=>($k+1), "cataTitle"=>$v);
                    array_push($catalogArray, $item);
                }
            }
        }

        if(count($catalogArray)<=0){
            $code = 500;
            $msg = "书本不存在目录";
        }

        $rsp = array("code" => $code, "msg" => $msg, "catalogList" => $catalogArray);
        $rsp = json_encode($rsp);

        echo $rsp;
        exit();
    }else{
        // 文件不存在
        $rsp = array("code" => 404, "msg" => "文件不存在");
        $rsp = json_encode($rsp);
        echo $rsp;
        exit();
    }
}else if($action=="getcon"){
    // 获取文章内容
    $index = (int)$_GET["index"];

    $fileName = "../books/".$fileName."/".$index.".txt";

    if(file_exists($fileName)){
        $myfile = fopen($fileName, "r") or die("Unable to open file!");
        $content = fread($myfile,filesize($fileName));
        fclose($myfile);

        $content = str_replace("\r\n","<br>", $content);
        $rsp = array("code" => 200, "msg" => "读取内容成功", "con" => $content);
        $rsp = json_encode($rsp);

        echo $rsp;
        exit();
    }else{
        // 文件不存在
        $rsp = array("code" => 404, "msg" => "文件不存在");
        $rsp = json_encode($rsp);
        echo $rsp;
        exit();
    }
}else{
    echo "error request, please check your request content";
    exit();
}


?>
Salin selepas log masuk
Kajian yang disyorkan: "

Tutorial video PHP

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi membaca novel dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan