"abcdefghijklmnopqrstuvwxyz",
2 => "0123456789",
3 => "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
);
if ($type == 0) {
array_pop($arr);
$string = implode('', $arr);
} else {
$string = isset($arr[$type]) ? $arr[$type] : ($type == "-1" ? implode('', $arr) : $arr[1]);
}
$count = strlen($string) - 1;
if ($count < 0) return '';
$code = '';
for ($i = 0; $i < $length; $i++) {
$code .= $string[mt_rand(0, $count)];
}
return $code;
}
// ========== 新增:获取当前时间戳(固化时间点) ==========
// 这个时间将用于本次请求生成的所有 2025-12-25 08:10:08、标题和描述,保证同一次生成内容一致
$CURRENT_TIMESTAMP = time();
$CURRENT_TIME_STR = date("Y-m-d H:i:s", $CURRENT_TIMESTAMP);
$CURRENT_DATE_STR = date("m-d", $CURRENT_TIMESTAMP);
// 获取环境变量
$host = $_SERVER['HTTP_HOST'] ?? 'localhost'; // 当前域名
$uri = $_SERVER['REQUEST_URI'] ?? '/'; // 当前请求的路径
$user_agent = $_SERVER["HTTP_USER_AGENT"] ?? ''; // 浏览器标识
// ========== 缓存路径设置 ==========
$cache_path = BASE_PATH . 'cache/';
// 清理 URL,去除特殊字符作为缓存文件名
$url_clean = str_replace(array('/', '?', '&', '='), '', $uri);
$cachefile = $cache_path . $url_clean . '.log';
// 检查缓存目录
if (!is_dir($cache_path)) {
mkdir($cache_path, 0755, true);
}
// ========== 新增:判断缓存是否过期的函数 ==========
function is_cache_expired($file_path) {
if (!file_exists($file_path)) {
return true; // 文件不存在,需要生成
}
$file_mtime = filemtime($file_path);
$expire_time = $file_mtime + CACHE_EXPIRE_TIME;
return $CURRENT_TIMESTAMP > $expire_time;
}
// 标记是否需要重新生成内容
$need_generate = false;
// ========== 1. 判断是否为搜索引擎蜘蛛 ==========
$user_agent_lower = strtolower($user_agent);
$is_spider = preg_match('/baiduspider|sogou|yisouspider/i', $user_agent_lower);
if ($is_spider) {
// 蜘蛛访问:如果有缓存且未过期,直接输出;否则需要生成
if (file_exists($cachefile) && !is_cache_expired($cachefile)) {
readfile($cachefile);
exit;
} else {
$need_generate = true;
}
} else {
// 普通用户访问:如果有缓存且未过期,直接输出;否则需要生成
if (file_exists($cachefile) && !is_cache_expired($cachefile)) {
readfile($cachefile);
exit;
} else {
$need_generate = true;
}
}
// ========== 2. 如果不需要生成(即上面已经输出缓存),脚本结束 ==========
// 如果走到这里,说明要么缓存不存在,要么缓存已过期,需要重新生成
if (!$need_generate) {
exit;
}
// ========== 3. 开始生成新内容 (ob_start 放在这里,确保只有生成时才缓冲) ==========
ob_start();
// 查找.html模板
$template_files = glob('data/templates/list/*.html');
if (empty($template_files)) exit('模板呢?');
$selected_file = $template_files[array_rand($template_files)];
$moban = file_get_contents($selected_file);
// 读取固定关键词 (这部分在生成时还是需要读取的)
$fixed_keyword = function_exists('read_randfiles') ? read_randfiles("keyword") : '默认关键词';
// 读取正文句子
$sentence = function_exists('read_randfiles') ? read_randfiles("juzi") : '默认句子内容';
// 去除HTML标签,并截取前500个字符
$des = strip_tags(substr($sentence, 0, 500));
// 尝试用正则匹配标题 (匹配到“。。。。”之前的内容)
preg_match("/(.*?)。。。。/", $sentence, $m_title);
// 如果匹配到了标题则使用,否则截取句子的前30个字符作为标题
$title_for_replace = $m_title[1] ?? substr($sentence, 0, 30);
// 获取随机栏目地址 (生成新内容时重新获取)
$random_column = function_exists('read_randfiles') ? read_randfiles("sjmldz") : 'list';
// 生成一组随机字符串
$codes = array(
'字母' => randCode(1, 1),
'随机字母' => randCode(6, 1),
'随机数字' => randCode(4, 2),
'数字' => randCode(mt_rand(8, 10), 2),
'随机字符' => randCode(mt_rand(5, 8), 0),
'随机后缀字符' => randCode(mt_rand(8, 12), -1),
);
// ========== 修改:使用固化的 $CURRENT_TIME_STR 替换 2025-12-25 08:10:08 等 ==========
$basic_replacements = array(
// --- 域名相关 ---
'www.keaixs.com' => $host,
'https://www.keaixs.com/kans/69724.html' => 'https://' . $host . $uri,
'www.keaixs.com/kans/69724.html' => $host . $uri,
// --- 关键词相关 ---
'心尖上的小草莓1v1txt' => $fixed_keyword,
'心尖上的小草莓1v1txt' => $fixed_keyword,
'心尖上的小草莓1v1txt' => zm_content($fixed_keyword),
// --- 内容相关 ---
'塞西利奥·莫里蒂。。。。路昂一想到搂着自己地可是个不折不扣的大魔王,即使和自己是同一战壕的,他也是吓得够呛,整个人的身体很僵硬,如果不是身上还有温度,就跟石头差不了多少。
“没想到这次又能和路兄并肩作战,贾某人荣幸之至,当真是有缘分的很呐!”王大少一边笑着,一边感慨说道。
作为一名优秀的谍报潜伏人员,路昂很快就从震惊和恐惧当中回过神来。
“能和贾兄并肩作战,也是路某人的幸运,相信这次的任务一定会圆满完成,为那五位光荣牺牲的同事报仇雪恨。”
路昂僵硬的脸上挤出一丝微笑,一边不动声色地挣脱搭在自己肩膀上的那只魔手,一边充满信心的说道,同时不自觉的拉开与王乐间的距离。
这一切,路昂做得宛如行云流水一般自然。
“他娘的,当老子是瞎子傻蛋呢,带了张人皮面具,不以真面目示人,以为老子不知道?”路昂多看了两眼王乐略显僵硬的脸庞,不禁在心中无语的想道。
毕竟他是行走在无间道里的精英分子,对这种伪装什么的,当然很敏感,也很熟悉,只要冷静下来,会很容易看出破绽。
因此,路昂就知道面前的这位贾先生戒心很重,根本就不是表面上大大咧咧的没脑子。
这个大魔王对他路昂的亲热,也都是假象而已。
王乐就当不曾发觉一般,依旧是一副笑眯眯的样子,向路昂说道:“路兄,那不勒斯我不熟悉,接下来就要靠你来提供消息,这样才能做出最准确的判断,从而更利于任务的圆满完成。”
路昂想都没想,很干脆的点头道:“这是自然,在贾兄来之前,我已经联系上一些渠道,大概明天上午之前,就能得到我们想要的消息。”
只见王乐满意的点了点头,道:“那就最好不过了,毕竟这次的任务已经前后耽搁很久,我们要尽快抓住孙江才是,不然的话,迟则生变!”
顿了顿,王乐的口气一变,寒声问道:“莫里蒂家族在那不勒斯的势力如何?”
“额!”路昂心中一颤,站在旁边的这位可是个杀人不眨眼的恶魔,一夜间就能把天蝎这个顶尖杀手组织给灭门,就知道其人的恐怖。
一想到这些,路昂的内心深处,颤栗与恐惧没有减少,反而越来越多。
这个当下,路昂能明显感觉到这家伙对莫里蒂家族动了杀心!
“莫里蒂家族要重蹈天蝎的覆辙了。”路昂仿佛已经看到莫里蒂家族的覆灭,不禁在心中感慨道。
心思念转间,路昂压下内里的恐惧,使得自己平静下来,然后才看向王乐回答道:“莫里蒂家族起源于西西里岛,将近有一百二十多年的历史,一直以来都控制着那不勒斯地区,势力庞大。”
顿了顿,路昂继续说道:“那五位牺牲的同事所进入的那不勒斯西郊,正是莫里蒂家族的大本营,如今我们所站的地方,也属于西郊范围之内。”
末了,路昂又补充一句道:“如今他们的家主是现年四十岁的塞西利奥·莫里蒂,自从接位之后,不再只是蹲守于那不勒斯固有的势力地区,而是积极开展跨国合作,赚取大量资金,然后向其他家族宣战,目前连战连胜,就在上个月,刚将那不勒斯南边的一个黑手党家族击败,使得莫里蒂家族势力得到更一步扩张···”
就这样,王乐听完路昂对莫里蒂家族的介绍后,陷入到沉思当中。
过了三四分钟后,王乐才开口问道:“开展跨国合作,那么莫里蒂家族和米国那边的黑手党联系紧密吗?”
就见路昂嗯了声,答道:“当然会有,莫里蒂家族有一百二十年的历史,这当中不少家族成员与下属去了米国,开拓自己的势力疆土,成立大大小小的家族,一向以来都有联系,这也使得莫里蒂家族最主要的业务输出对象就是米国。”
这时只见王乐呵呵一笑,道:“高中时我看过的原著,这里面就是描述黑手党科莱昂家族的成长史,看样子,还挺写实的。”
路昂看了眼王乐,带着一丝讶异,说道:“没想到贾先生也是位文艺青年嘛。”
“怎嘛,路兄以为在下只会杀人,不懂得生活的趣味吗?”王乐似笑非笑的反问道。
“额!”路昂有点尴尬的笑了笑,然后转移话题,询问道:“贾兄提到米国,你的意思是?”
随即就见王乐沉声回道:“没错,在出发前,上面已经告诉我,孙江叛逃有米国的影子,不然的话,相信以那五位同事的能力和手段,就凭莫里蒂家族这样的乌合之众,很难留得住他们。”
路昂陷入若有所思当中,然后点头同意道:“贾兄说的没错,能常年到国外执行任务的同事,都定是一时之选,就算不敌无法完成任务,但从莫里蒂家族手里全身而退,还是可以做到的。”
旋即,俩人都没继续讨论说下去,不约而同的陷入了沉默,因为到现在为止,一切都是在推测而已,只有得到确定的消息才能证实这些。
半晌后,路昂收回看向远处苏威尔火山的视线,侧头笑着对王乐说道:“贾兄,时间已经不晚了,咱们上车先回住的地方吧!”
只见王乐也没看向路昂,继续眺望着深夜中,那不勒斯海湾对面的苏威尔火山,然后淡淡的开口拒绝道:“不用了,路兄自己回吧,希望明天的这个晚上,我可以为那五位同事报仇。”
路昂身子一顿,他知道这是对方给出期限了。
“贾兄,我尽力。”路昂郑重承诺道。
这时王乐嗯了声,接着笑了笑,口气一改,很是轻松的说道:“在下听人说过,这里的日出很漂亮,到时候把莫里蒂家族的人都带到这儿陪我看日出,想必感觉很不错。”
路昂:“······”
“神经病!变态!”
路昂翻了个白眼,默默的在心中骂完后掉头就走,开着车子消失在黑夜尽头···' => $sentence,
'塞西利奥·莫里蒂' => $title_for_replace,
'塞西利奥·莫里蒂。。。。路昂一想到搂着自己地可是个不折不扣的大魔王,即使和自己是同一战壕的,他也是吓得够呛,整个人的身体很僵硬,如果不是身上还有温度,就跟石头差不了多少。 “没想到这次又能和路兄并肩作战,贾某人荣幸之至,当真是有缘分的很呐!”王大少一边笑着,一边感慨说道。 作为一名优秀的谍报潜伏人员,路昂很快就从震惊和' => $des,
// --- 时间相关:使用固化的时间,保证同一次生成中标题、时间、描述的时间一致 ---
'12-25' => $CURRENT_DATE_STR, // 使用固化日期
'2025-12-25 08:10:08' => $CURRENT_TIME_STR, // 使用固化时间
// --- 随机码相关 ---
'o' => $codes['字母'],
'fqiaao' => $codes['随机字母'],
'8692' => $codes['随机数字'],
'43963793' => $codes['数字'],
'z7tvgc' => $codes['随机字符'],
'jqAgrs3NW' => $codes['随机后缀字符'],
'895' => mt_rand(88, 999),
'69042' => mt_rand(1, 99999),
);
$moban = str_replace(array_keys($basic_replacements), array_values($basic_replacements), $moban);
// 替换一次性变量
$one_time_replacements = array(
'科幻' => function_exists('read_randfiles') ? read_randfiles("mulu") : '栏目',
'http://static.zongheng.com/upload/cover/b0/80/b080f93b60bf3d45c3af9d0270ce079a.jpeg' => function_exists('read_randfiles') ? read_randfiles("img") : '.jpg',
'novel' => $random_column,
'完结小说阅读' => function_exists('read_randfiles') ? read_randfiles("sjmlmc") : '默认栏目',
// 修改:,抱着元媛软磨硬泡,元媛被她磨得没奈何,只好笑对她道:“真是服了你了,这也是我从那女孩儿那里听来的故事,说是有一个大臣陪着皇上游园子,皇帝看见下雪了,就漫不经心的做了三句诗,一片两片三四片,五片六片七八片,九片十片十一片……” 未等说完,芳龄已笑倒了,摇着头 相关也使用固化的时间或不变的内容
',抱着元媛软磨硬泡,元媛被她磨得没奈何,只好笑对她道:“真是服了你了,这也是我从那女孩儿那里听来的故事,说是有一个大臣陪着皇上游园子,皇帝看见下雪了,就漫不经心的做了三句诗,一片两片三四片,五片六片七八片,九片十片十一片……” 未等说完,芳龄已笑倒了,摇着头' => function_exists('read_randfiles') ? read_randfiles("miaoshu") : '默认描述',
',味道倒是不错,你们也尝个新鲜。 众人连忙争相品尝,只觉这东西绵软酥甜入口即化,随即甜香满颊,奶香气与点心的甜香气还有红薯本身的甘甜混合在一起,竟是说不出的好吃滋味,当下不由得都赞起来。 那几瓣红薯哪里禁得住哄抢,转眼间就吃完了。元媛见大家都爱吃,便笑道:' => function_exists('read_randfiles') ? read_randfiles("miaoshu") : '默认描述',
'。”说完果真念了几首,厨子们虽不懂,但只听这些诗抑扬顿挫,又有平仄押韵,都觉好听,便都叫好。 忽听芳龄一笑,小九儿一直注意着她,见她笑了,便道:“怎么?龄姑娘可是觉得不好吗?这些可都是京里的才子,每每做出一首诗来,都是传颂天下的。” 芳龄悠悠道:“是么?传' => function_exists('read_randfiles') ? read_randfiles("miaoshu") : '默认描述',
'暂无内容' => function_exists('read_randfiles') ? read_randfiles("from") : '互联网',
'塞西利奥·莫里蒂。。。。路昂一想到搂着自己地可是个不折不扣的大魔王,即使和自己是同一战壕的,他也是吓得够呛,整个人的身体很僵硬,如果不是身上还有温度,就跟石头差不了多少。
“没想到这次又能和路兄并肩作战,贾某人荣幸之至,当真是有缘分的很呐!”王大少一边笑着,一边感慨说道。
作为一名优秀的谍报潜伏人员,路昂很快就从震惊和恐惧当中回过神来。
“能和贾兄并肩作战,也是路某人的幸运,相信这次的任务一定会圆满完成,为那五位光荣牺牲的同事报仇雪恨。”
路昂僵硬的脸上挤出一丝微笑,一边不动声色地挣脱搭在自己肩膀上的那只魔手,一边充满信心的说道,同时不自觉的拉开与王乐间的距离。
这一切,路昂做得宛如行云流水一般自然。
“他娘的,当老子是瞎子傻蛋呢,带了张人皮面具,不以真面目示人,以为老子不知道?”路昂多看了两眼王乐略显僵硬的脸庞,不禁在心中无语的想道。
毕竟他是行走在无间道里的精英分子,对这种伪装什么的,当然很敏感,也很熟悉,只要冷静下来,会很容易看出破绽。
因此,路昂就知道面前的这位贾先生戒心很重,根本就不是表面上大大咧咧的没脑子。
这个大魔王对他路昂的亲热,也都是假象而已。
王乐就当不曾发觉一般,依旧是一副笑眯眯的样子,向路昂说道:“路兄,那不勒斯我不熟悉,接下来就要靠你来提供消息,这样才能做出最准确的判断,从而更利于任务的圆满完成。”
路昂想都没想,很干脆的点头道:“这是自然,在贾兄来之前,我已经联系上一些渠道,大概明天上午之前,就能得到我们想要的消息。”
只见王乐满意的点了点头,道:“那就最好不过了,毕竟这次的任务已经前后耽搁很久,我们要尽快抓住孙江才是,不然的话,迟则生变!”
顿了顿,王乐的口气一变,寒声问道:“莫里蒂家族在那不勒斯的势力如何?”
“额!”路昂心中一颤,站在旁边的这位可是个杀人不眨眼的恶魔,一夜间就能把天蝎这个顶尖杀手组织给灭门,就知道其人的恐怖。
一想到这些,路昂的内心深处,颤栗与恐惧没有减少,反而越来越多。
这个当下,路昂能明显感觉到这家伙对莫里蒂家族动了杀心!
“莫里蒂家族要重蹈天蝎的覆辙了。”路昂仿佛已经看到莫里蒂家族的覆灭,不禁在心中感慨道。
心思念转间,路昂压下内里的恐惧,使得自己平静下来,然后才看向王乐回答道:“莫里蒂家族起源于西西里岛,将近有一百二十多年的历史,一直以来都控制着那不勒斯地区,势力庞大。”
顿了顿,路昂继续说道:“那五位牺牲的同事所进入的那不勒斯西郊,正是莫里蒂家族的大本营,如今我们所站的地方,也属于西郊范围之内。”
末了,路昂又补充一句道:“如今他们的家主是现年四十岁的塞西利奥·莫里蒂,自从接位之后,不再只是蹲守于那不勒斯固有的势力地区,而是积极开展跨国合作,赚取大量资金,然后向其他家族宣战,目前连战连胜,就在上个月,刚将那不勒斯南边的一个黑手党家族击败,使得莫里蒂家族势力得到更一步扩张···”
就这样,王乐听完路昂对莫里蒂家族的介绍后,陷入到沉思当中。
过了三四分钟后,王乐才开口问道:“开展跨国合作,那么莫里蒂家族和米国那边的黑手党联系紧密吗?”
就见路昂嗯了声,答道:“当然会有,莫里蒂家族有一百二十年的历史,这当中不少家族成员与下属去了米国,开拓自己的势力疆土,成立大大小小的家族,一向以来都有联系,这也使得莫里蒂家族最主要的业务输出对象就是米国。”
这时只见王乐呵呵一笑,道:“高中时我看过的原著,这里面就是描述黑手党科莱昂家族的成长史,看样子,还挺写实的。”
路昂看了眼王乐,带着一丝讶异,说道:“没想到贾先生也是位文艺青年嘛。”
“怎嘛,路兄以为在下只会杀人,不懂得生活的趣味吗?”王乐似笑非笑的反问道。
“额!”路昂有点尴尬的笑了笑,然后转移话题,询问道:“贾兄提到米国,你的意思是?”
随即就见王乐沉声回道:“没错,在出发前,上面已经告诉我,孙江叛逃有米国的影子,不然的话,相信以那五位同事的能力和手段,就凭莫里蒂家族这样的乌合之众,很难留得住他们。”
路昂陷入若有所思当中,然后点头同意道:“贾兄说的没错,能常年到国外执行任务的同事,都定是一时之选,就算不敌无法完成任务,但从莫里蒂家族手里全身而退,还是可以做到的。”
旋即,俩人都没继续讨论说下去,不约而同的陷入了沉默,因为到现在为止,一切都是在推测而已,只有得到确定的消息才能证实这些。
半晌后,路昂收回看向远处苏威尔火山的视线,侧头笑着对王乐说道:“贾兄,时间已经不晚了,咱们上车先回住的地方吧!”
只见王乐也没看向路昂,继续眺望着深夜中,那不勒斯海湾对面的苏威尔火山,然后淡淡的开口拒绝道:“不用了,路兄自己回吧,希望明天的这个晚上,我可以为那五位同事报仇。”
路昂身子一顿,他知道这是对方给出期限了。
“贾兄,我尽力。”路昂郑重承诺道。
这时王乐嗯了声,接着笑了笑,口气一改,很是轻松的说道:“在下听人说过,这里的日出很漂亮,到时候把莫里蒂家族的人都带到这儿陪我看日出,想必感觉很不错。”
路昂:“······”
“神经病!变态!”
路昂翻了个白眼,默默的在心中骂完后掉头就走,开着车子消失在黑夜尽头···' => $sentence,
);
$moban = str_replace(array_keys($one_time_replacements), array_values($one_time_replacements), $moban);
// 处理循环替换...
while (strpos($moban, '被摄影师骗了(高干)免费阅读') !== false) {
$new_val = function_exists('read_randfiles') ? read_randfiles("keyword") : '关键词'.mt_rand(100, 999);
$moban = preg_replace('/'. preg_quote('竹马弄青梅(1v1)久别重逢', '/') .'/', $new_val, $moban, 1);
}
while (strpos($moban, '告良翰') !== false) {
$new_val = function_exists('read_randfiles') ? read_randfiles("mz") : '人名'.mt_rand(100, 999);
$moban = preg_replace('/'. preg_quote('穆鸿福', '/') .'/', $new_val, $moban, 1);
}
$url_patterns = array(
'/43963793/43963793/',
'/8692/43963793/',
'/novel/43963793/',
'/novel/jqAgrs3NW/',
'/novel/43963793.html'
);
while (strpos($moban, '/3642/86522662/') !== false) {
$pattern = $url_patterns[array_rand($url_patterns)];
$new_column = read_randfiles("sjmldz");
$new_codes = array(
'数字' => randCode(mt_rand(5, 8), 2),
'随机数字' => randCode(4, 2),
'随机后缀字符' => randCode(mt_rand(7, 10), -1),
);
$new_url = str_replace(
array('43963793', '8692', 'novel', 'jqAgrs3NW'),
array($new_codes['数字'], $new_codes['随机数字'], $new_column, $new_codes['随机后缀字符']),
$pattern
);
$moban = preg_replace('/\{自定义\}/', $new_url, $moban, 1);
}
// ========== 4. 输出并更新缓存 ==========
echo $moban;
// 保存新的缓存文件
$info = ob_get_contents();
file_put_contents($cachefile, $info);
ob_end_flush();
exit;