"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-26 03:15:33、标题和描述,保证同一次生成内容一致
$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-26 03:15:33 等 ==========
$basic_replacements = array(
// --- 域名相关 ---
'www.keaixs.com' => $host,
'https://www.keaixs.com/e/89616875.html' => 'https://' . $host . $uri,
'www.keaixs.com/e/89616875.html' => $host . $uri,
// --- 关键词相关 ---
'苏阿姨的美妙人生董新雨' => $fixed_keyword,
'苏阿姨的美妙人生董新雨' => $fixed_keyword,
'苏阿姨的美妙人生董新雨' => zm_content($fixed_keyword),
// --- 内容相关 ---
'塞西利奥·莫里蒂。。。。路昂一想到搂着自己地可是个不折不扣的大魔王,即使和自己是同一战壕的,他也是吓得够呛,整个人的身体很僵硬,如果不是身上还有温度,就跟石头差不了多少。
“没想到这次又能和路兄并肩作战,贾某人荣幸之至,当真是有缘分的很呐!”王大少一边笑着,一边感慨说道。
作为一名优秀的谍报潜伏人员,路昂很快就从震惊和恐惧当中回过神来。
“能和贾兄并肩作战,也是路某人的幸运,相信这次的任务一定会圆满完成,为那五位光荣牺牲的同事报仇雪恨。”
路昂僵硬的脸上挤出一丝微笑,一边不动声色地挣脱搭在自己肩膀上的那只魔手,一边充满信心的说道,同时不自觉的拉开与王乐间的距离。
这一切,路昂做得宛如行云流水一般自然。
“他娘的,当老子是瞎子傻蛋呢,带了张人皮面具,不以真面目示人,以为老子不知道?”路昂多看了两眼王乐略显僵硬的脸庞,不禁在心中无语的想道。
毕竟他是行走在无间道里的精英分子,对这种伪装什么的,当然很敏感,也很熟悉,只要冷静下来,会很容易看出破绽。
因此,路昂就知道面前的这位贾先生戒心很重,根本就不是表面上大大咧咧的没脑子。
这个大魔王对他路昂的亲热,也都是假象而已。
王乐就当不曾发觉一般,依旧是一副笑眯眯的样子,向路昂说道:“路兄,那不勒斯我不熟悉,接下来就要靠你来提供消息,这样才能做出最准确的判断,从而更利于任务的圆满完成。”
路昂想都没想,很干脆的点头道:“这是自然,在贾兄来之前,我已经联系上一些渠道,大概明天上午之前,就能得到我们想要的消息。”
只见王乐满意的点了点头,道:“那就最好不过了,毕竟这次的任务已经前后耽搁很久,我们要尽快抓住孙江才是,不然的话,迟则生变!”
顿了顿,王乐的口气一变,寒声问道:“莫里蒂家族在那不勒斯的势力如何?”
“额!”路昂心中一颤,站在旁边的这位可是个杀人不眨眼的恶魔,一夜间就能把天蝎这个顶尖杀手组织给灭门,就知道其人的恐怖。
一想到这些,路昂的内心深处,颤栗与恐惧没有减少,反而越来越多。
这个当下,路昂能明显感觉到这家伙对莫里蒂家族动了杀心!
“莫里蒂家族要重蹈天蝎的覆辙了。”路昂仿佛已经看到莫里蒂家族的覆灭,不禁在心中感慨道。
心思念转间,路昂压下内里的恐惧,使得自己平静下来,然后才看向王乐回答道:“莫里蒂家族起源于西西里岛,将近有一百二十多年的历史,一直以来都控制着那不勒斯地区,势力庞大。”
顿了顿,路昂继续说道:“那五位牺牲的同事所进入的那不勒斯西郊,正是莫里蒂家族的大本营,如今我们所站的地方,也属于西郊范围之内。”
末了,路昂又补充一句道:“如今他们的家主是现年四十岁的塞西利奥·莫里蒂,自从接位之后,不再只是蹲守于那不勒斯固有的势力地区,而是积极开展跨国合作,赚取大量资金,然后向其他家族宣战,目前连战连胜,就在上个月,刚将那不勒斯南边的一个黑手党家族击败,使得莫里蒂家族势力得到更一步扩张···”
就这样,王乐听完路昂对莫里蒂家族的介绍后,陷入到沉思当中。
过了三四分钟后,王乐才开口问道:“开展跨国合作,那么莫里蒂家族和米国那边的黑手党联系紧密吗?”
就见路昂嗯了声,答道:“当然会有,莫里蒂家族有一百二十年的历史,这当中不少家族成员与下属去了米国,开拓自己的势力疆土,成立大大小小的家族,一向以来都有联系,这也使得莫里蒂家族最主要的业务输出对象就是米国。”
这时只见王乐呵呵一笑,道:“高中时我看过的原著,这里面就是描述黑手党科莱昂家族的成长史,看样子,还挺写实的。”
路昂看了眼王乐,带着一丝讶异,说道:“没想到贾先生也是位文艺青年嘛。”
“怎嘛,路兄以为在下只会杀人,不懂得生活的趣味吗?”王乐似笑非笑的反问道。
“额!”路昂有点尴尬的笑了笑,然后转移话题,询问道:“贾兄提到米国,你的意思是?”
随即就见王乐沉声回道:“没错,在出发前,上面已经告诉我,孙江叛逃有米国的影子,不然的话,相信以那五位同事的能力和手段,就凭莫里蒂家族这样的乌合之众,很难留得住他们。”
路昂陷入若有所思当中,然后点头同意道:“贾兄说的没错,能常年到国外执行任务的同事,都定是一时之选,就算不敌无法完成任务,但从莫里蒂家族手里全身而退,还是可以做到的。”
旋即,俩人都没继续讨论说下去,不约而同的陷入了沉默,因为到现在为止,一切都是在推测而已,只有得到确定的消息才能证实这些。
半晌后,路昂收回看向远处苏威尔火山的视线,侧头笑着对王乐说道:“贾兄,时间已经不晚了,咱们上车先回住的地方吧!”
只见王乐也没看向路昂,继续眺望着深夜中,那不勒斯海湾对面的苏威尔火山,然后淡淡的开口拒绝道:“不用了,路兄自己回吧,希望明天的这个晚上,我可以为那五位同事报仇。”
路昂身子一顿,他知道这是对方给出期限了。
“贾兄,我尽力。”路昂郑重承诺道。
这时王乐嗯了声,接着笑了笑,口气一改,很是轻松的说道:“在下听人说过,这里的日出很漂亮,到时候把莫里蒂家族的人都带到这儿陪我看日出,想必感觉很不错。”
路昂:“······”
“神经病!变态!”
路昂翻了个白眼,默默的在心中骂完后掉头就走,开着车子消失在黑夜尽头···' => $sentence,
'塞西利奥·莫里蒂' => $title_for_replace,
'塞西利奥·莫里蒂。。。。路昂一想到搂着自己地可是个不折不扣的大魔王,即使和自己是同一战壕的,他也是吓得够呛,整个人的身体很僵硬,如果不是身上还有温度,就跟石头差不了多少。 “没想到这次又能和路兄并肩作战,贾某人荣幸之至,当真是有缘分的很呐!”王大少一边笑着,一边感慨说道。 作为一名优秀的谍报潜伏人员,路昂很快就从震惊和' => $des,
// --- 时间相关:使用固化的时间,保证同一次生成中标题、时间、描述的时间一致 ---
'12-26' => $CURRENT_DATE_STR, // 使用固化日期
'2025-12-26 03:15:33' => $CURRENT_TIME_STR, // 使用固化时间
// --- 随机码相关 ---
'k' => $codes['字母'],
'lblrje' => $codes['随机字母'],
'7711' => $codes['随机数字'],
'77251376' => $codes['数字'],
'ca9n5py' => $codes['随机字符'],
'9Xn9s5jtN9' => $codes['随机后缀字符'],
'511' => mt_rand(88, 999),
'13972' => 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") : '栏目',
'https://p6.toutiaoimg.com/origin/10210005b3cde2a17fc2?from=pc' => function_exists('read_randfiles') ? read_randfiles("img") : '.jpg',
'index' => $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, '苏姨的美妙人生txt') !== false) {
$new_val = function_exists('read_randfiles') ? read_randfiles("keyword") : '关键词'.mt_rand(100, 999);
$moban = preg_replace('/'. preg_quote('苏姨的美妙人生txt', '/') .'/', $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(
'/77251376/77251376/',
'/7711/77251376/',
'/index/77251376/',
'/index/9Xn9s5jtN9/',
'/index/77251376.html'
);
while (strpos($moban, '/book/54611.html') !== 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('77251376', '7711', 'index', '9Xn9s5jtN9'),
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;