{ "title": "PHP 获取当前网址并解析域名,提取 XML 内容生成 Sitemap.txt", "description": "本文介绍使用 PHP 代码获取当前网址,解析域名,并提取 XML 内容生成 Sitemap.txt 文件。代码示例展示了如何使用正则表达式匹配和文件操作实现该功能,并提供了常见问题排查方法,例如正则表达式匹配错误和文件读取问题。", "keywords": "PHP, 获取当前网址, 解析域名, Sitemap.txt, 正则表达式, 文件操作", "content": "//取当前网址\n$host = $_SERVER['HTTP_HOST'];\n$host = strtolower($host);\n$host = explode(".", $host);\n$subdomain = $host[0];\n$domain = $host[1];\n$tld = $host[2];\n$current_domain = 'https://' . $subdomain . "." . $domain . "." . $tld; \n$first_part_escaped = preg_quote($current_domain, '/'); // 转义变量中的特殊字符,需指定正则分隔符\n\n//提取xml内容\n$content = file_get_contents('data3883/xfm_cache_new_log.txt');\npreg_match_all("/$first_part_escaped(.?)\n/", $content, $out, PREG_SET_ORDER);\n//preg_match_all("/https:\/\/.*?\/\/(.*?)\n/",\$content,\$out,PREG_SET_ORDER);\nforeach (\$out as \$value) {\n\t\/\/写入内容\n\t\$rs = file_put_contents('sitemap.txt', \$current_domain . \$value[1] . "\r\n", FILE_APPEND);\n}\n上面这段代码中的当前网址为https:\/\/zxrj.org,运行后怎么sitemap.txt中没有内容写入内容:可能是因为正则表达式匹配的规则不正确导致没有匹配到任何内容。请确保\$data3883\/xfm_cache_new_log.txt文件中包含了正确的数据,并且符合你预期的格式。\n\n你可以尝试打印出\$first_part_escaped和\$content的值,以及preg_match_all函数的返回结果\$out,来进行调试。这样可以帮助你确定是否正确定义了正则表达式和是否正确匹配到了内容。\n\n另外,你还可以尝试在preg_match_all函数中添加一个错误处理机制,以便捕获任何可能的错误并输出错误消息,例如:\n\nphp\nif (preg_match_all("/$first_part_escaped(.?)\n/", $content, $out, PREG_SET_ORDER) === false) {\n\techo "正则表达式匹配错误:" . preg_last_error();\n}\n```\n\n这样可以帮助你找到可能的问题所在。\n

PHP 获取当前网址并解析域名,提取 XML 内容生成 Sitemap.txt

原文地址: https://www.cveoy.top/t/topic/pvx9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录