You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP脚本无报错突然终止求助:模拟weleakinfo.com功能运行超时

嘿,我来帮你搞定这个问题!运行40秒突然停掉,十有八九是超时或者资源限制在搞鬼,结合你要处理230个大文本文件的场景,咱们一步步拆解问题:

1. 首先排查PHP执行超时

默认情况下,PHP的max_execution_time通常是30秒左右,你运行到40秒刚好触发了超时终止。解决这个的办法很直接:

  • 在脚本开头加上set_time_limit(0);,0代表取消执行时间限制(如果服务器没开安全模式的话生效)
  • 如果你有权限改php.ini,也可以把max_execution_time调大,比如设成300(5分钟),不过脚本内设置更灵活

2. 内存资源还是要留意

虽然你换成了fscanf()逐行读取,但如果你的逻辑里把所有匹配结果都存在数组里,或者有其他内存累积的操作,还是可能触发内存限制。建议:

  • 每次匹配到目标邮箱后,直接输出结果或者写入临时文件,不要一直存在内存里
  • 必要的话可以临时放宽内存限制:ini_set('memory_limit', '-1');,不过这个要谨慎用,别搞垮服务器

3. 文件遍历的细节优化

230个文件逐个处理,要是没做好资源释放,也可能出问题:

  • 用glob('*.txt')来批量获取所有目标文件,比手动写1到230的循环更靠谱,也能避免文件名出错
  • 每个文件处理完一定要用fclose()关闭句柄,不然打开的文件句柄太多会耗尽服务器资源

给你一个优化后的示例代码

<?php
// 解除执行时间限制
set_time_limit(0);
// 临时放宽内存限制(按需使用)
ini_set('memory_limit', '-1');
// 开启错误报告,方便排查隐藏问题(生产环境记得关掉display_errors)
error_reporting(E_ALL);
ini_set('display_errors', 1);

// 假设从用户输入获取目标邮箱
$targetEmail = $_POST['email'] ?? '';
$foundRecords = [];

// 获取所有1.txt到230.txt的文件
$files = array_filter(glob('*.txt'), function($file) {
    $num = preg_replace('/\D/', '', $file);
    return $num >=1 && $num <=230;
});

foreach ($files as $file) {
    $handle = fopen($file, 'r');
    if (!$handle) {
        echo "无法打开文件: {$file}<br>";
        continue;
    }

    // 用fscanf逐行读取匹配格式
    while (fscanf($handle, "%[^:]:%s\n", $email, $password) !== false) {
        if ($email === $targetEmail) {
            $foundRecords[] = "{$email}:{$password} (来自文件: {$file})";
            // 如果你找到就想停止,可以直接跳出循环
            // break 2;
        }
    }

    fclose($handle); // 必须关闭文件句柄!
}

if (!empty($foundRecords)) {
    echo "找到以下匹配记录:<br>";
    foreach ($foundRecords as $record) {
        echo "- {$record}<br>";
    }
} else {
    echo "未找到该邮箱的泄露记录";
}
?>

额外要检查的点

  • 服务器层面的超时:比如Apache的Timeout配置、Nginx的fastcgi_read_timeout,如果服务器限制了请求超时时间,光改PHP的设置没用,得同步调整
  • 错误日志:去服务器的PHP错误日志里看看有没有隐藏的报错,比如某些文件格式不规范导致fscanf读取异常,只是没显示出来

内容的提问来源于stack exchange,提问作者kvothe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:10:51