先看效果
![](https://img.haomeiwen.com/i15277567/02972c5deefdaafa.png)
PHP代码
/**
* [index description]
* @author GoDogson
* @DateTime 2019-08-09T11:43:03+0800
* @return [type] [description]
*/
public function txt($title = 1) {
// $url = 'http://www.lu.com/index/txt/title/' . ($title + 1);
// echo '<a href="' . $url . '">' . $title . '</a>';
// 打印点东西 , 你懂得
var_dump(db('users')->order('rand()')->select());
$file = cache('file');
// $file = '';
if (!$file) {
// 文件目录
$file = file_get_contents('2.txt');
// txt加入缓存
cache('file', $file);
}
$file = $file;
// 获取第几章到第几章
$title = intval($title);
$end = $title + 1;
// 转章节名字 得到 "第一百三十五章"
$titlestr = '第' . \think\helper\Str::number2chinese($title) . '章';
$titlenum = stripos($file, $titlestr);
// 如果不存在则查找 "第135章"
if (!$titlenum) {
// 章节名称补0 得到 "第0135章" 此处根据下载的txt小说来
$title = str_pad($title, 4, "0", STR_PAD_LEFT);
$titlestr = '第' . $title . '章';
$titlenum = stripos($file, $titlestr);
}
// echo $title;exit();
$endtitlestr = '第' . \think\helper\Str::number2chinese($end) . '章';
$endtitlenum = stripos($file, $endtitlestr);
if (!$endtitlenum) {
$end = str_pad($end, 4, "0", STR_PAD_LEFT);
$endtitlestr = '第' . $end . '章';
$endtitlenum = stripos($file, $endtitlestr);
}
echo $titlestr . ' == ' . $endtitlestr . "<br>";
echo $endtitlenum . '===' . $titlenum . "<br>";
$num = intval($endtitlenum) - intval($titlenum);
echo "$num";
// 截图章节文字
$str = substr($file, $titlenum, $num);
$this->assign('str', $str);
return $this->fetch();
// $this->redirect('vote/vote/index');
}
/**
* 数字转中文
* [number2chinese description]
* @author QQ:530411799
* @DateTime 2019-11-11T16:50:43+0800
* @param [type] $num [description]
* @return [type] [description]
*/
public static function number2chinese($num) {
if (is_int($num) && $num < 100) {
$char = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
$unit = ['', '十', '百', '千', '万'];
$return = '';
if ($num < 10) {
$return = $char[$num];
} elseif ($num % 10 == 0) {
$firstNum = substr($num, 0, 1);
if ($num != 10) {
$return .= $char[$firstNum];
}
$return .= $unit[strlen($num) - 1];
} elseif ($num < 20) {
$return = $unit[substr($num, 0, -1)] . $char[substr($num, -1)];
} else {
$numData = str_split($num);
$numLength = count($numData) - 1;
foreach ($numData as $k => $v) {
if ($k == $numLength) {
continue;
}
$return .= $char[$v];
if ($v != 0) {
$return .= $unit[$numLength - $k];
}
}
$return .= $char[substr($num, -1)];
}
return $return;
}
}
HTML代码
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
// 这里直接打印 一般会报错 这样在F12中点击第一个图的错误就可以小窗看小说了
console.log("{$str}")
</script>
</html>
网友评论