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

PHP中对比两个文本文件的函数咨询及代码修复需求

问题分析与解决方案

你的代码存在几个关键问题导致功能失效:

  • file_get_contents仅接受一个文件路径参数,你错误地传入了两个文件路径,无法正确读取内容
  • 无意义的for循环仅执行一次,且内部的return false会直接终止脚本,后续逻辑无法执行
  • 未正确遍历词表中的每个词汇去匹配按键记录

以下是修正后的代码,实现按键记录与词表词汇的匹配检测:

<?php
echo "<h3><center>#####Alert#####</center></h3>";
$alertText = "<br>Unsafe user Found";

// 读取两个文件内容
$keyLogContent = file_get_contents('file.txt');
$wordListContent = file_get_contents('wordlist.txt');

// 处理词表:按行分割成数组,过滤空行
$wordList = array_filter(explode(PHP_EOL, $wordListContent), function($word) {
    return trim($word) !== '';
});

// 遍历词表,检查每个词汇是否存在于按键记录中
foreach ($wordList as $word) {
    $word = trim($word);
    // 使用stripos实现大小写不敏感匹配,若需严格大小写改用strpos
    if (stripos($keyLogContent, $word) !== false) {
        echo $alertText;
        // 匹配到后可选择终止循环,避免重复输出提示
        // break;
        // 若需发送邮件,在这里补充邮件逻辑
        // mail($to, $subject, $message);
    }
}
?>

代码说明

  • 文件读取:分别读取按键记录文件和词表文件的内容,确保数据来源正确
  • 词表处理:将词表按行分割为数组,并过滤空行,避免无效匹配
  • 匹配逻辑:使用stripos(大小写不敏感)或strpos(严格大小写)检查每个词表词汇是否存在于按键记录中,匹配成功则输出提示
  • 可选优化:匹配到第一个目标词汇后可使用break终止循环,减少不必要的遍历

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:20:14