2015-11-16 3 views
1

У меня есть массив с большим количеством различных данных там, я получаю данные с моего сервера:получить конкретные ДАННЫЕ из массива с помощью поиска

$sp_bots = shell_exec("grep bot | awk '{print $12}' /var/www/laravel/logs/vhosts/website"); 

В этом комментарии я получаю все данные, где слово «бот "есть - и чем я вырезал что-то через awk

Mozilla/5.0 [82] => "Mozilla/5.0 [83] => "Googlebot-Image/1.0" [84] => "Googlebot-Image/1.0" [85] 

, что я получаю сейчас,

Но я хочу только данные, где„найден бот“! я просто не знаю, как .. array_filter может это сделать, но я не знаю, как и не понимаю синтаксис.

+0

вы получаете ли массив в ответ? Выходной отклик, похоже, не является массивом? –

+0

это массив :) – Evolution48

+0

Array ([0] => "Mozilla/5.0 [1] =>" Mozilla/5.0 [2] => "Mozilla/5.0 [3] и так далее ... :) – Evolution48

ответ

0

Если вы получаете массив что-то вроде ниже, а затем попробовать PHP strpos function

$sp_bots= array(82 => "Mozilla/5.0", 83 => "Googlebot-Image/1.0", 84 => "Googlebot-Image/1.0"); 
foreach($sp_bots as $data) { 
    if(strpos($data, 'bot') > -1) { 
     // It does contain bot string 
     echo $data .' contains bot string <br/>';//while it will print the other two indexes 
    } else { 
     // It does not contain bot value 
     echo $data .' does not contains bot string <br/>'; //Mozilla/5.0 does not contain bot string 
    } 
}