Skip to main content

Filter array in PHP using keywords?



What could I add to the following code to filter the returned results using keywords in an array?





The code that send the keywords, and made the funciton call is in Javasript.





The code below opens a file, takes a pointer using a request, opens the file finds the pointer, and retrieves all log lines from the pointer to the end of the file. Then it formats it into a JSON object and sends back to 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);

}







Please tell me how I can filter the retrieved data using the keywords in the keywords array.


Comments

Popular posts from this blog

Why is this Javascript much *slower* than its jQuery equivalent?

I have a HTML list of about 500 items and a "filter" box above it. I started by using jQuery to filter the list when I typed a letter (timing code added later): $('#filter').keyup( function() { var jqStart = (new Date).getTime(); var search = $(this).val().toLowerCase(); var $list = $('ul.ablist > li'); $list.each( function() { if ( $(this).text().toLowerCase().indexOf(search) === -1 ) $(this).hide(); else $(this).show(); } ); console.log('Time: ' + ((new Date).getTime() - jqStart)); } ); However, there was a couple of seconds delay after typing each letter (particularly the first letter). So I thought it may be slightly quicker if I used plain Javascript (I read recently that jQuery's each function is particularly slow). Here's my JS equivalent: document.getElementById('filter').addEventListener( 'keyup', function () { var jsStart = (new Date).getTime()...