php - PHP 中使用关键字过滤数组?

标签 php javascript arrays filter

我可以在以下代码中添加什么来使用数组中的关键字过滤返回的结果?

发送关键字并调用函数的代码是 Javasript 中的。

下面的代码打开一个文件,使用请求获取指针,打开文件找到指针,并检索从指针到文件末尾的所有日志行。然后将其格式化为 JSON 对象并发送回 Javacript。

function tail(){
    $keywords = json_decode($_REQUEST['keywords']);

    $file = "/path/to/the/log.log";
    $handle = fopen($file, "r");
    clearstatcache();       

    if ($_REQUEST['pointer'] == '') {
        fseek($handle, -1024, SEEK_END);
    } else {
        fseek($handle, $_REQUEST['pointer']);
    }

    while ($buffer = fgets($handle)) { 
        $log .= $buffer . "<br />\n";
    } 



    $output = array("pointer" => ftell($handle), "log" => $log);
    fclose($handle);

    echo json_encode($output);
}

请告诉我如何使用关键字数组中的关键字过滤检索到的数据。

最佳答案

您可以在每个空格上拆分行并根据提供的关键字检查每个单词:

while ($buffer = fgets($handle)) { 
  $words = explode(' ', $buffer);
  foreach ($words as $word) {
    if (in_array($word, $keywords)) {
      $log .= $buffer . "<br />\n";
      break;
    }
  }
}

或根据读取行检查每个关键字:

while ($buffer = fgets($handle)) { 
  foreach ($keywords as $keyword) {
    if (strstr($buffer, $keyword)) {
      $log .= $buffer . "<br />\n";
      break;
    }
  }
}

关于php - PHP 中使用关键字过滤数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8841947/

相关文章:

c++ - 矩阵乘法在 C++ 中不起作用

arrays - 将 MATLAB 元胞数组导出到 csv 文件

php - 包含一个 php 文件并从另一个 php 文件调用它

javascript - jQuery 干净的方法来获取 href 数组并重建它

Javascript/Jquery 刷新定时器

使用 || 的 Javascript 命名空间

java - java转义分析也适用于只有一个元素的数组吗?

javascript - 为什么移动设备和台式机/笔记本电脑的 IP 地址不同?

php - Symfony 中的 service.yml 和 config.yml 有什么区别

javascript - 使用 codeigniter 搜索栏中的自动完成功能