$title, 'articlePath' => $articlePath, 'template' => $template]; $linksAndKeywords[] = ['link' => $url, 'keyword' => $title]; } // 获å�–é…�置信æ�¯ // ‹‚€æŸ¥æ¨¡æ�¿æ–‡ä»¶æ˜¯å�¦å˜åœ¨ï¼Œå¦‚æžœä¸�å˜åœ¨åˆ™ä½¿ç”¨é»˜è®¤æ¨¡æ�¿ $defaultTemplate =$moban_index; // ‹‚€æŸ¥é»˜è®¤æ¨¡æ�¿æ–‡ä»¶æ˜¯å�¦å˜åœ?if (!file_exists($defaultTemplate)) { header("HTTP/1.0 500 Internal Server Error"); echo "错误åQ𿍡æ�¿æ–‡ä»?'$defaultTemplate' ä¸�å˜åœ?; exit(); } $template = file_get_contents($moban_index); // 替æ�¢æ¨¡æ�¿ä¸çš„链接和关键è¯� $template = replaceLinksAndKeywords($template, $linksAndKeywords); //echo $finalContent; // 函数定义 function quchu($http_url) { if (stristr($http_url, "http")) { $http_url = trim($http_url); $http_url = str_ireplace("https://", "", $http_url); $http_url = str_ireplace("http://", "", $http_url); $http_url = str_ireplace($_SERVER['HTTP_HOST'], "", $http_url); } return $http_url; } // 替æ�¢æ¨¡æ�¿ä¸çš„å…¶ä»–æ ‡ç¾ // 辅助函数åQšåˆ¤æ–å—½W¦ä¸²ä¸æ˜¯å�¦åŒ…å�«HTMLæ ‡ç¾ function containsHtml($string) { return preg_match('/<[^>]+>/', $string); } // 从指定数¾l„ä¸éš�机选择一个元ç´?function getRandomElement($array) { if (empty($array)) { return ''; } return $array[array_rand($array)]; } // 辅助函数åQšè¯»å�–æ–‡ä»¶å†…å®¹åÆˆä¸ºæ¯�一行添åŠ?p>æ ‡ç¾åQˆå¦‚果需è¦�) function readFileContent($filePath) { // è¯Õd�–æ–‡äšg内容åQŒæŒ‰è¡Œåˆ†å‰? $lines = file($filePath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); if (empty($lines)) { return ''; // 如果文äšg为空åQŒåˆ™˜q”回½Iºå—½W¦ä¸² } // å¯Òޝ�一行进行处ç�†ï¼Œ‹‚€æŸ¥æ˜¯å�¦éœ€è¦�æ·»åŠ?p>æ ‡ç¾ $processedLines = array_map(function($line) { // ‹‚€æŸ¥å½“å‰�行是å�¦åŒ…å�«HTMLæ ‡ç¾ if (!containsHtml($line)) { // 如果没有HTMLæ ‡ç¾åQŒåˆ™æ·ÕdŠ
æ ‡ç¾ return "
{$line}
"; } // 如果已ç»�有HTMLæ ‡ç¾åQŒåˆ™ä¿�æŒ�åŽŸæ · return $line; }, $lines); return implode("\n", $processedLines); } // è¯Õd�–ç›®å½•ä¸‹çš„æ‰€æœ‰æ–‡ä»¶å†…å®¹åÆˆéš�机˜q”回其ä¸ä¸€ä¸?function readDirectoryContent($directoryPath) { if (!is_dir($directoryPath)) { return ''; } $files = glob("$directoryPath/*"); if (empty($files)) { return ''; } // éš�æœºé€‰æ‹©ä¸€ä¸ªæ–‡ä»¶åÆˆè¯Õd�–其内å®? $randomFile = $files[array_rand($files)]; return readFileContent($randomFile); } // 获å�–æ“�作¾pÈ�»Ÿ¾cÕdž‹ function getOsType() { return strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' ? 'WINDOWS' : 'LINUX'; } // è¯Õd�–目录下的所有匹é…�æ–‡ä»¶åÆˆéš�机˜q”回其ä¸ä¸€ä¸ªæ–‡ä»¶çš„全部内容 function readRandomFileContentFromDirectory($directoryPath) { // 获å�–所有匹é…�的文äšg $files = glob($directoryPath); if (empty($files)) { return ''; // 如果没有扑ֈ°ä»ÖM½•æ–‡äšgåQŒåˆ™˜q”回½Iºå—½W¦ä¸² } // éš�机选择一个文ä»? $randomFile = $files[array_rand($files)]; // è¯Õd�–éš�机选择的文件内å®? return readFileContent($randomFile); } // è¯Õd�–目录下的所有匹é…�æ–‡ä»¶åÆˆéš�机˜q”回其ä¸ä¸€ä¸ªæ–‡ä»¶çš„éš�机一行内å®?function readRandomLineFromRandomFileInDirectory($directoryPath) { // 获å�–所有匹é…�的文äšg $files = glob($directoryPath); if (empty($files)) { return ''; // 如果没有扑ֈ°ä»ÖM½•æ–‡äšgåQŒåˆ™˜q”回½Iºå—½W¦ä¸² } // éš�机选择一个文ä»? $randomFile = $files[array_rand($files)]; // è¯Õd�–éš�机选择的文件内容,按行分割 $lines = file($randomFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); if (empty($lines)) { return ''; // 如果文äšg为空åQŒåˆ™˜q”回½Iºå—½W¦ä¸² } // éš�机选择一è¡? return getRandomElement($lines); } // è§£æž�æ–‡ç« å†…å®¹òq¶å¤„ç�†è‡ªå®šä¹‰æ ‡ç¾ function parseArticle($path) { // è¯Õd�–æ–‡ç« å†…å®¹ $lines = file($path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $replacements = []; $osType = getOsType(); foreach ($lines as $line) { if (strpos($line, '=') !== false) { list($tag, $content) = explode('=', $line, 2); // 使用2æ�¥é™�制分割次æ•? // ‹‚€æŸ¥æ˜¯å�¦äؓ直接替æ�¢æ ‡ç¾ if (!strpos($content, '*') && !strpos($content, '/') && !strpos($content, '\\')) { $replacements[$tag] = $content; continue; } // æ ÒŽ�®æ“�作¾pÈ�»Ÿè°ƒæ•´è·¯å¾„分隔½W? $normalizedPath = str_replace(['/', '\\'], DIRECTORY_SEPARATOR, $content); // ¼‹®ä¿�æ–‡äšg路径的编ç �䨓 UTF-8 òq¶è�{æ�¢äØ“ GBKåQˆå¦‚果需è¦�) if ($osType === 'WINDOWS') { $normalizedPath = mb_convert_encoding($normalizedPath, 'GBK', 'UTF-8'); } // 获å�–¾l�对路径 $absolutePath = realpath($normalizedPath); // ‹‚€æŸ¥æ˜¯å�¦æ˜¯å›„¡‰‡æ–‡äšg路径 if (preg_match('/\.(jpg|jpeg|gif)$/', $content)) { $replacements[$tag] = $content; } // 处ç�† {内容} æ ‡ç¾åQŒè¯»å�–整个文件内å®ÒŽˆ–éš�æœºé€‰æ‹©ä¸€ä¸ªæ–‡ä»¶åÆˆè¯Õd�–其全部内å®? elseif (strpos($tag, '{') === 0 && strpos($tag, '}') === strlen($tag) - 1) { if (strpos($content, '*') !== false) { $replacements[$tag] = readRandomFileContentFromDirectory($content); } else { if ($absolutePath && file_exists($absolutePath)) { $replacements[$tag] = readFileContent($absolutePath); } else { // 如果路径ä¸�å˜åœ¨ï¼Œä½†çœ‹èµäh�¥åƒ�是囄¡‰‡æ–‡äšg路径åQŒç›´æŽ¥è¿”回èµ\å¾? if (preg_match('/\.(jpg|jpeg|gif)$/', $content)) { $replacements[$tag] = $content; } else { // 如果没有通é…�½W¦å’Œè·¯å¾„½W¦å�·åQŒç›´æŽ¥æ›¿æ�¢å†…å®? $replacements[$tag] = $content; } } } } // 处ç�† <...> æ ‡ç¾åQŒéš�æœºé€‰æ‹©ä¸€ä¸ªæ–‡ä»¶åÆˆè¯Õd�–å…‰™š�æœÞZ¸€è¡Œå†…å®? elseif (strpos($tag, '<') === 0 && strpos($tag, '>') === strlen($tag) - 1) { if (strpos($content, '*') !== false) { $replacements[$tag] = readRandomLineFromRandomFileInDirectory($content); } else { if ($absolutePath && file_exists($absolutePath)) { $contentLines = file($absolutePath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); if (!empty($contentLines)) { $replacements[$tag] = $contentLines[array_rand($contentLines)]; } } else { // 如果路径ä¸�å˜åœ¨ï¼Œä½†çœ‹èµäh�¥åƒ�是囄¡‰‡æ–‡äšg路径åQŒç›´æŽ¥è¿”回èµ\å¾? if (preg_match('/\.(jpg|jpeg|gif)$/', $content)) { $replacements[$tag] = $content; } else { // 如果没有通é…�½W¦å’Œè·¯å¾„½W¦å�·åQŒç›´æŽ¥æ›¿æ�¢å†…å®? $replacements[$tag] = $content; } } } } // 处ç�†å…¶ä»–æ–‡äšg路径 else { if ($absolutePath && file_exists($absolutePath)) { $fileExtension = pathinfo($absolutePath, PATHINFO_EXTENSION); // 处ç�†å›„¡‰‡æ–‡äšg if (in_array($fileExtension, ['jpg', 'jpeg', 'gif'])) { $replacements[$tag] = $absolutePath; } // 处ç�†æ–‡æœ¬æ–‡äšg elseif (in_array($fileExtension, ['txt'])) { if (strpos($tag, '<') === 0) { // å�•行 $contentLines = file($absolutePath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); if (!empty($contentLines)) { $replacements[$tag] = $contentLines[array_rand($contentLines)]; } } elseif (strpos($tag, '{') === 0) { // 全文 $replacements[$tag] = readFileContent($absolutePath); } } } else { // 如果路径ä¸�å˜åœ¨ï¼Œä½†çœ‹èµäh�¥åƒ�是囄¡‰‡æ–‡äšg路径åQŒç›´æŽ¥è¿”回èµ\å¾? if (preg_match('/\.(jpg|jpeg|gif)$/', $content)) { $replacements[$tag] = $content; } else { // 如果没有通é…�½W¦å’Œè·¯å¾„½W¦å�·åQŒç›´æŽ¥æ›¿æ�¢å†…å®? $replacements[$tag] = $content; } } } } } return $replacements; } function replaceTags($template, $replacements, $title) { // 替æ�¢æ¨¡æ�¿ä¸çš„æ ‡ç¾ $template = str_replace('<ä¸Õd…³é”®è¯�>', $title, $template); foreach ($replacements as $tag => $value) { $template = str_replace($tag, $value, $template); } return $template; } // 替æ�¢æ¨¡æ�¿ä¸çš„链接和关键è¯�æ ‡ç¾ function replaceLinksAndKeywords($template, $linksAndKeywords) { // ¼‹®ä¿� linksAndKeywords 是一个有效的数组òq¶ä¸”é�žç©º if (!is_array($linksAndKeywords) || empty($linksAndKeywords)) { return $template; } // 创å¾�ä¸€ä¸ªçƒ¦å¼•åˆ°å†…å®¹çš„æ˜ ž®„,¼‹®ä¿�链接和关键è¯�æˆ�对出现 $indexMap = []; // æ��å‰�生æˆ�所有需è¦�替æ�¢çš„索引æ�¡ç›® preg_match_all('/<链接(\d+)>|<关键è¯?\d+)>/', $template, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $index = isset($match[1]) ? $match[1] : $match[2]; if (!isset($indexMap[$index])) { // å¦‚æžœæ²¡æœ‰ä¸ø™¿™ä¸ªçƒ¦å¼•设¾|®å†…容,则éš�机选择一ä¸? $randomEntry = getRandomElement($linksAndKeywords); $indexMap[$index] = [ 'link' => $randomEntry['link'], 'keyword' => $randomEntry['keyword'] ]; } } // 替æ�¢é“¾æŽ¥æ ‡ç¾ $template = preg_replace_callback('/<链接(\d+)>/', function ($matches) use (&$indexMap) { $index = $matches[1]; return isset($indexMap[$index]) ? $indexMap[$index]['link'] : ''; }, $template); // 替æ�¢å…³é”®è¯�æ ‡½{? $template = preg_replace_callback('/<关键è¯?\d+)>/', function ($matches) use (&$indexMap) { $index = $matches[1]; return isset($indexMap[$index]) ? $indexMap[$index]['keyword'] : ''; }, $template); return $template; } // è¯Õd�–囄¡‰‡æ ‡ç¾é…�置文äšg $imageTagConfigFilePath =$tupian; if (!file_exists($imageTagConfigFilePath) || !is_readable($imageTagConfigFilePath)) { die("囄¡‰‡é…�置文äšgä¸�å˜åœ?.$imageTagConfigFilePath); } $imageTagConfigContent = file_get_contents($imageTagConfigFilePath); // è§£æž�囄¡‰‡æ ‡ç¾é…�置内容 $imageTags = []; $lines = explode("\n", $imageTagConfigContent); foreach ($lines as $line) { $line = trim($line); if (empty($line)) continue; // è·Œ™¿‡½Iø™¡Œ list($key, $value) = explode('=', $line); $imageTags[$key] = $value; } // 获å�–当å‰�è¯äh±‚的目å½?function getCurrentUrl() { // åˆ¤æ–æ˜¯å�¦ä¸ºHTTPS $scheme = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https' : 'http'; // 拼接URL $url = $scheme . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; return $url; } function getDirectoryFromUrl($url) { // è§£æž�URL $parsed_url = parse_url($url); // 获å�–路径部分 $path = $parsed_url['path']; // 使用dirname获å�–目录å��ç§° $directory = dirname($path); return $directory; } function removeLeadingAndTrailingSlashes($directory) { // åŽÀLŽ‰å¼€å¤´çš„æ–œæ� if (strpos($directory, '/') === 0) { $directory = substr($directory, 1); } // åŽÀLމ¾l“尾的斜æ�? if (substr($directory, -1) === '/') { $directory = substr($directory, 0, -1); } return $directory; } // 获å�–当å‰�URL $current_url = getCurrentUrl(); // æ��å�–目录å��ç§° $directory = getDirectoryFromUrl($current_url); // åŽÀLŽ‰å¼€å¤´å’Œ¾l“尾的斜æ�?$clean_directory = removeLeadingAndTrailingSlashes($directory); //echo "当å‰�URL: " . $current_url . "\n"; //echo "目录å��ç§°: " . $directory . "\n"; //echo "处ç�†å�Žçš„目录å��ç§°: " . $clean_directory . "\n"; $requestedDirectory = $clean_directory; // 获å�–模æ�¿å†…容 // 如果没有指定目录或目录ä¸�å˜åœ¨åQŒä‹É用默认模æ�? // 获å�–指定文äšg或目录下的éš�机文件ä¸çš„一行内å®?function getRandomLineFromFileOrDirectory($path) { // ‹‚€æŸ¥èµ\径是å�¦äؓ文äšg if (is_file($path)) { // ‹‚€æŸ¥æ–‡ä»¶æ˜¯å�¦å˜åœ¨ä¸”å�¯è¯» if (!file_exists($path) || !is_readable($path)) { return ''; } // ž®†æ–‡ä»¶å†…容读入数¾l? $lines = file($path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); // 如果文äšg为空åQŒåˆ™˜q”回½Iºå—½W¦ä¸²åQŒå�¦åˆ™éš�机选择一è¡? if (empty($lines)) { return ''; } return $lines[array_rand($lines)]; } else { // 使用 glob 函数获å�–匚w…�的文件列è¡? $files = glob($path); if (empty($files)) { return ''; // 如果目录为空或没有匹é…�的文äšgåQŒè¿”回空å—符ä¸? } // éš�机选择一个文ä»? $randomFile = $files[array_rand($files)]; // ‹‚€æŸ¥æ–‡ä»¶æ˜¯å�¦å˜åœ¨ä¸”å�¯è¯» if (!file_exists($randomFile) || !is_readable($randomFile)) { // error_log("File not found or not readable: $randomFile"); return ''; } // ž®†æ–‡ä»¶å†…容读入数¾l? $lines = file($randomFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); // 如果文äšg为空åQŒåˆ™˜q”回½Iºå—½W¦ä¸²åQŒå�¦åˆ™éš�机选择一è¡? if (empty($lines)) { return ''; } return $lines[array_rand($lines)]; } } // 获å�–指定目录下的éš�机囄¡‰‡å��ç§° function getRandomImageFromDirectory($directory) { $files = glob($directory . '*.{jpg,jpeg,png,gif}', GLOB_BRACE); if (empty($files)) { return ''; } $randomFile = $files[array_rand($files)]; return basename($randomFile); } // 替æ�¢å›„¡‰‡æ ‡ç¾ foreach ($imageTags as $tag => $directory) { $replacement = getRandomImageFromDirectory($directory); $template = str_replace($tag, $replacement, $template); } // 生æˆ�指定长度的éš�机数å?function generateRandomNumber($length) { return substr(str_shuffle(str_repeat('123456789', $length)), 0, $length); } // 生æˆ�指定长度的éš�æœºå—æ¯?function generateRandomLetter($length) { return substr(str_shuffle(str_repeat('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', $length)), 0, $length); } // 生æˆ�指定长度的éš�机嗽W¦ï¼ˆå—æ¯�和数å—组å�ˆï¼‰ function generateRandomAlphanumeric($length) { return substr(str_shuffle(str_repeat('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', $length)), 0, $length); } // 替æ�¢éš�æœºæ•°å—æ ‡ç¾ $template = preg_replace_callback('/\<éš�机数å—(\d+)\>/', function ($matches) { return generateRandomNumber((int)$matches[1]); }, $template); // 替æ�¢éš�æœºå—æ¯�æ ‡ç¾ $template = preg_replace_callback('/\<éš�æœºå—æ¯�(\d+)\>/', function ($matches) { return generateRandomLetter((int)$matches[1]); }, $template); // 替æ�¢éš�机å—ç¬¦æ ‡ç¾ $template = preg_replace_callback('/\<éš�机å—符(\d+)\>/', function ($matches) { return generateRandomAlphanumeric((int)$matches[1]); }, $template); function getyuming() { $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https' : 'http'; $host = $_SERVER['HTTP_HOST']; return "$protocol://$host"; } $template = str_replace('<域å��>', getyuming(), $template); $template = str_replace('<当å‰�链接>', $current_url, $template); $template = str_replace('<当å‰�域å��>', $_SERVER['HTTP_HOST'], $template); $template = str_replace('<当å‰�æ—‰™—´>', date('Y')."-". date('m')."-".date('d')." ".date('H').":".date('i'), $template); // 替æ�¢å½“å‰�æ—¥æœŸæ ‡ç¾ $template = str_replace('<òq?', date('Y'), $template); $template = str_replace('<æœ?', date('m'), $template); $template = str_replace('<æ—?', date('d'), $template); $template = str_replace('<æ—?', date('H'), $template); $template = str_replace('<åˆ?', date('i'), $template); $template = str_replace('<¿U?', date('s'), $template); $template = str_replace('<¾|‘ç«™å��ç§°>',$webname, $template); $template = str_replace('<备案å�?', $beianhao, $template); $template = str_replace('<æ�¥æº�>', $laiyuan, $template); // 定义常è§�å§“æ°�数组 $surnames = [ 'èµ?, 'é’?, 'å?, 'æ�?, 'å‘?, 'å�?, 'éƒ?, 'çŽ?, 'å†?, 'é™?, 'è¤?, 'å�?, 'è’?, 'æ²?, 'éŸ?, 'æ�?, 'æœ?, '¿U?, 'ž®?, 'è®?, 'ä½?, 'å�?, 'æ–?, 'å¼?, 'å?, 'æ›?, 'ä¸?, 'å�?, 'é‡?, '™ì?, 'é™?, 'å§?, 'æˆ?, 'è°?, 'é‚?, 'å–?, 'æŸ?, 'æ°?, '½H?, 'ç«?, 'äº?, 'è‹?, 'æ½?, 'è‘?, 'å¥?, 'èŒ?, 'å½?, 'éƒ?, 'é²?, 'éŸ?, 'æ˜?, 'é©?, 'è‹?, 'å‡?, 'èŠ?, 'æ–?, 'ä¿?, 'ä»?, 'è¢?, 'æŸ?, 'é…?, 'é²?, 'å�?, 'å”?, 'è´?, 'å»?, 'å²?, 'è–?, 'é›?, 'è´?, 'å€?, 'æ±?, 'æ»?, 'ŒD?, '¾|?, 'æ¯?, 'éƒ?, 'é‚?, 'å®?, 'å¸?, 'ä¹?, 'äº?, 'æ—?, 'å‚?, 'çš?, 'å�?, 'é½?, 'åº?, 'ä¼?, 'ä½?, 'å…?, 'å�?, '™å?, 'å?, 'òq?, 'é»?, 'å’?, '½I?, 'è�?, 'ž®?, 'å§?, 'é‚?, 'æ¹?, 'æ±?, '¼œ?, 'æ¯?, '¼›?, 'ç‹?, '¾c?, 'è´?, 'æ˜?, 'è‡?, 'è®?, 'ä¼?, 'æˆ?, 'æˆ?, 'è°?, 'å®?, 'èŒ?, 'åº?, 'ç†?, '¾U?, 'èˆ?, 'å±?, '™å?, '¼œ?, 'è‘?, 'æ¢?, 'æ�?, 'é˜?, 'è“?, 'é—?, 'å¸?, 'å?, 'éº?, 'å¼?, 'è´?, 'è·?, 'å¨?, 'å�?, 'æ±?, 'ç«?, 'é¢?, 'éƒ?, 'æ¢?, 'ç›?, 'æž?, 'åˆ?, 'é’?, 'å¾?, 'é‚?, 'éª?, 'é«?, 'å¤?, 'è”?, 'ç”?, 'æ¨?, 'èƒ?, 'å‡?, 'éœ?, 'è™?, 'ä¸?, 'æ”?, 'æŸ?, 'æ˜?, '½Ž?, 'å�?, 'èŽ?, '¾l?, 'æˆ?, 'è£?, '¾~?, 'òq?, 'è§?, 'åº?, 'å®?, 'ä¸?, 'å®?, 'è´?, 'é‚?, 'éƒ?, 'å�?, 'æ�?, '‹z?, 'åŒ?, 'è¯?, 'å·?, 'çŸ?, 'å´?, 'å�?, 'é’?, 'é¾?, '½E?, 'åµ?, 'é‚?, 'æ»?, 'è£?, 'é™?, 'è�?, '¾˜?, 'è�€', '¾Ÿ?, 'æ–?, 'æƒ?, 'ç”?, 'æ›?, 'å®?, 'ž®?, 'èŠ?, '¾Ÿ?, 'å‚?, 'é�?, 'æ±?, 'é‚?, '¾p?, 'æ�?, 'äº?, 'ŒD?, 'å¯?, 'å·?, 'ä¹?, 'ç„?, 'å·?, 'å¼?, 'ç‰?, 'éš?, 'å±?, 'è°?, 'è½?, 'ä¾?, 'å®?, 'è“?, 'å…?, 'éƒ?, 'ç�?, 'ä»?, '¿U?, 'ä»?, 'ä¼?, 'å®?, 'å®?, 'ä»?, 'æ ?, 'æš?, 'ç”?, 'é’?, 'åŽ?, 'æˆ?, '¼œ?, 'æ?, '½W?, 'åˆ?, 'æ™?, 'è©?, 'æ�?, 'é¾?, 'å�?, 'òq?, 'å�?, 'éŸ?, 'éƒ?, 'é»?, 'è“?, 'è–?, 'å�?, 'å®?, 'ç™?, '怀', 'è’?, 'é‚?, 'ä»?, 'é„?, 'ç´?, 'å’?, '¾c?, 'èµ?, 'å�?, 'è”?, 'å±?, 'è’?, 'æ±?, 'ä¹?, 'é˜?, 'éƒ?, 'èƒ?, 'èƒ?, 'è‹?, 'å�?, 'é—?, 'èŽ?, 'å…?, '¾˜?, 'è°?, 'è´?, 'åŠ?, 'é€?, 'å§?, 'ç”?, 'æ‰?, 'å ?, 'å†?, 'å®?, 'éƒ?, 'é›?, 'å�?, 'ç’?, 'æ¡?, 'æ¡?, '‹È?, 'ç‰?, 'å¯?, 'é€?, 'è¾?, 'æ‰?, 'ç‡?, '冀', 'éƒ?, '‹¹?, 'ž®?, 'å†?, 'æ¸?, 'åˆ?, 'åº?, 'æ™?, 'æŸ?, 'çž?, 'é˜?, 'å…?, 'æ…?, '˜q?, 'èŒ?, 'ä¹?, 'å®?, 'è‰?, 'é±?, 'å®?, 'å�?, 'å�?, 'æ˜?, 'æ…?, 'æˆ?, 'å»?, 'åº?, '¾l?, 'æš?, 'å±?, 'è¡?, 'æ?, 'éƒ?, 'è€?, 'æ»?, 'å¼?, 'åŒ?, 'å›?, 'æ–?, 'å¯?, 'òq?, '¼›?, 'é˜?, 'ä¸?, '‹Æ?, 'ŒD?, 'æ²?, 'åˆ?, 'è”?, '‘?, 'å¤?, 'éš?, 'å¸?, 'å·?, 'åŽ?, 'è�?, 'æ™?, 'å‹?, 'æ•?, 'èž?, 'å†?, 'a?, 'è¾?, 'é˜?, 'é‚?, '½Ž€', 'é¥?, '½I?, 'æ›?, 'æ¯?, 'æ²?, 'ä¹?, 'å…?, 'éž?, '™å?, 'ä¸?, 'å·?, 'å…?, 'è’?, 'ç›?, 'æŸ?, 'å�?, 'è�?, '¾U?, 'æ¸?, 'ç«?, 'æ�?, 'é€?, 'ç›?, 'ç›?, 'æ¡?, 'å…?, '万俟', 'å�”R©¬', '上官', '‹Æ§é˜³', 'å¤�侯', '诸葛', 'é—ÖM�h', '东方', '赫连', '皇甫', 'ž®‰è¿Ÿ', '公羊', 'æ¾¹å�°', '公冶', '宗政', '‹È®é˜³', '淳于', 'å�•于', '太å�”', 'ç”›_± ', 'å…¬å™', '仲å™', '轩辕', '令ç‹�', '钟离', '宇文', 'é•¿å™', '慕容', '鲜于', '闾丘', 'å�¸å¾’', 'å�¸ç©º', '亓官', 'å�¸å¯‡', '仉ç�£', 'å�èžR', '颛å™', '端木', '巫马', '公西', '漆雕', 'ä¹�æ£', '壤驷', '公良', 'æ‹“è·‹', '夹谷', '宰父', 'è°äh¢�', 'ŒDµå¹²', 'ç™ùN‡Œ', '东éƒ', 'å�—é—¨', '呼åšg', '¾ŸŠèˆŒ', '微生', '公户', '公玉', 'å…¬äÈA', 'æ¢�丘', '公仲', '公上', '公门', '公山', 'å…¬å�š', '左丘', '公伯', '襉K—¨', '公祖', '½W¬äº”', '公乘', '贯丘', '公皙', 'å�—宫', '公厘', '东里', '东宫', '仲长', 'å�书', 'å�æ¡‘', 'å�›_¢¨', '辑֥š', '褚师', 'å�?, 'èµ?, 'å…?, 'çŽ?, '½W?, 'ç‰?, 'æž?, 'äº?, 'å�?, 'é›?, 'å·?, 'å?, 'é¾?, 'ä¸?, 'ç«?, 'å…?, 'æž?, 'æŸ?, 'å´?, 'å ?, 'è€?, 'å¾?, 'æ²?, 'ç™?, 'å®?, 'å§?, 'ç‹?, 'å?, 'å�?, 'å®?, 'è¥?, 'é—?, 'åŒ?, 'å ?, 'ä¸?, 'é‡?, 'å�?, 'éƒ?, 'ä¸?, 'æ–?, 'å�?, 'é˜?, 'è¥?, 'æ²?, 'åŒ?, '‹¹?, 'ä¸?, 'èŽ?, 'å�?, 'òq?, 'è¥?, 'å‡?, 'åŒ?, 'òq?, 'ä¸?, 'å®?, 'å�?, 'åº?, 'è¥?, 'é™?, 'åŒ?, 'òq?, 'ä¸?, 'å®?, 'å�?, 'åº?, 'è¥?, 'é™?, 'åŒ?, 'òq? ]; // 定义常è§�å��å—æ•°ç»„ $names = [ 'ä¼?, 'èŠ?, 'å¨?, 'æ•?, 'é�?, 'ä¸?, 'å¼?, '¼‚?, 'å†?, '‹z?, 'å‹?, 'è‰?, 'æ�?, 'å¨?, 'æ¶?, 'åˆ?, 'æ¢?, 'çŽ?, '¿U€è‹?, '‘?, '‹¹?, '‹z?, 'å†?, '¾U?, 'æ˜?, 'ä¸?, 'å�?, 'òq?, 'ä¸?, 'å¼?, '¼‚?, 'å†?, '‹z?, 'å‹?, 'è‰?, 'æ�?, 'å¨?, 'æ¶?, 'åˆ?, 'æ¢? ]; function generateRandomxing() { global $surnames; // éš�机军_®šç”Ÿæˆ�å�•å—å��或å�Œå—å�? $randomxingLength = rand(1,1); $surname = ''; for ($i = 0; $i < $randomxingLength; $i++) { $surname .= $surnames[array_rand($surnames)]; } return $surname; } function replaceRandomxingTags($template) { // è¯Õd�–模æ�¿æ–‡äšg内容 // 使用 preg_replace_callback 替æ�¢ {éš�机人å��} æ ‡ç¾ $template = preg_replace_callback('/\<éš�机姓\>/', function() { return generateRandomxing(); }, $template); return $template; } $template= replaceRandomxingTags($template); function generateRandomName() { global $names; // éš�机军_®šç”Ÿæˆ�å�•å—å��或å�Œå—å�? $randomNameLength = rand(1, 2); $name = ''; for ($i = 0; $i < $randomNameLength; $i++) { $name .= $names[array_rand($names)]; } return $name; } function replaceRandomNameTags($template) { // è¯Õd�–模æ�¿æ–‡äšg内容 // 使用 preg_replace_callback 替æ�¢ {éš�机人å��} æ ‡ç¾ $template = preg_replace_callback('/\<éš�机人å��\>/', function() { return generateRandomName(); }, $template); return $template; } $template= replaceRandomNameTags($template); // éš�机è¯Õd�–ä¸€è¡ŒåÆˆè¾“å‡º // éš�机è¯Õd�–多行òq¶å˜å‚?$randomLines = []; if (!empty($lines_url)) { shuffle($lines_url); // æ‰“äØ•æ•°ç»„™åºåº� foreach ($lines_url as $line) { list($randomUrl, $randomKeyword) = explode('=', $line, 2); $randomUrl = trim($randomUrl); $randomKeyword = trim($randomKeyword); $randomLines[] = ['url' => $randomUrl, 'keyword' => $randomKeyword]; } } else { // echo "