我可以在以下代码中添加什么来使用数组中的关键字过滤返回的结果?
发送关键字并调用函数的代码是 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/