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