ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
``` ~~~ <?php ini_set('memory_limit','5102M'); //升级为256M内存 ini_set('max_execution_time', '12000'); /* PHP 提取 SQL 文件中的 URL 并保存到文本文件 以下是一个完整的 PHP 脚本,可以从 2025.sql 文件中提取 URL(包括处理转义字符的情况),按域名排序并去重,最后将结果保存到 202555.txt 文件中: */ function extractUrlsFromSql($inputFile, $outputFile) { // 检查输入文件 if (!file_exists($inputFile)) { throw new RuntimeException("输入文件不存在: {$inputFile}"); } // 读取文件内容 $content = file_get_contents($inputFile); if ($content === false) { throw new RuntimeException("无法读取文件: {$inputFile}"); } // 匹配 HTTP/HTTPS URL(包括转义情况) // 提取URL的正则表达式(优化版) preg_match_all('/(https?:[\\\\\/]+[^\s\',)]+|https?:\/\/[^\s\',)]+)/i', $content, $matches); // 处理提取到的URL $urls = []; if (!empty($matches[0])) { foreach ($matches[0] as $url) { // 标准化URL(替换所有转义斜杠) $normalizedUrl = str_replace(['\/', '\\/'], '/', $url); // 移除可能存在的结尾单引号或逗号 $cleanUrl = rtrim($normalizedUrl, "',"); $cleanUrl = str_replace('"', "",$cleanUrl); $cleanUrl = str_replace('</span>', "",$cleanUrl); $cleanUrl = str_replace('<span>', "",$cleanUrl); $cleanUrl = str_replace('</p>', "",$cleanUrl); $cleanUrl = str_replace('<p', "",$cleanUrl); $cleanUrl = str_replace('<p>', "",$cleanUrl); $cleanUrl = str_replace('<br', "",$cleanUrl); $cleanUrl = str_replace('<br>', "",$cleanUrl); $cleanUrl = str_replace('&amp;', "&",$cleanUrl); $cleanUrl = str_replace('"}', "",$cleanUrl); $cleanUrl = str_replace('}', "",$cleanUrl); $cleanUrl = str_replace('>', "",$cleanUrl); $cleanUrl = str_replace('?x-oss-process=image/resize', "",$cleanUrl); $urls[] = $cleanUrl; } } // 去重并排序 $uniqueUrls = array_values(array_unique($urls)); usort($uniqueUrls, function($a, $b) { $domainA = parse_url($a, PHP_URL_HOST); $domainB = parse_url($b, PHP_URL_HOST); // 先按域名排序,再按完整 URL 排序 $domainCompare = strcasecmp($domainA ?? '', $domainB ?? ''); return $domainCompare !== 0 ? $domainCompare : strcmp($a, $b); }); // 准备输出内容 $outputContent = "提取到的唯一 URL 数量: " . count($uniqueUrls) . "\n\n"; $outputContent .= implode("\n", $uniqueUrls); // 写入文件 if (file_put_contents($outputFile, $outputContent) === false) { throw new RuntimeException("无法写入输出文件: {$outputFile}"); } return count($uniqueUrls); } // 主程序 try { $startTime = microtime(true); $inputFile = 'db_dump.sql'; $inputFile = 'boo_live_qq_prod0512.sql'; $outputFile = '202555_test.txt'; echo "开始处理文件: {$inputFile}\n"; $count = extractUrlsFromSql($inputFile, $outputFile); $executionTime = round(microtime(true) - $startTime, 2); echo "处理完成!\n"; echo "提取到唯一 URL: {$count} 个\n"; echo "结果已保存到: {$outputFile}\n"; echo "耗时: {$executionTime} 秒\n"; } catch (Exception $e) { echo "错误: " . $e->getMessage() . "\n"; exit(1); } ~~~ ```