PHP-цикл проверяет наличие строки в массиве, а затем выводит логическое значение - PullRequest
0 голосов
/ 27 августа 2010

Довольно глупо с PHP, это продолжение моего последнего вопроса .

У меня есть список пользовательских агентов внутри массива, и я хочу, чтобы вывод был истинным, еслипользовательский агент соответствует одному из перечисленных в массиве.

Это то, что у меня есть для одного пользовательского агента:

    <?php
        function mediaType(){
           $browser = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
           $var = 0;
           if ($browser !== false)  { $var = 1; }
           return $var;
        }
    ?>

Я хочу что-то вроде этого:

<?php

function mediaType(){

    $userAgents = array("iPhone", "Chrome");    
    $browser = $_SERVER['HTTP_USER_AGENT'];
    $var = 0;

    if (in_array($browser, $userAgents)) {
    $var = 1;
    }   

    return $var;        
}

?>

Я думаю, что цикл while был бы хорошим вариантом, но я ничего не понимаю.

Ответы [ 3 ]

1 голос
/ 27 августа 2010

Вот ваш приятный и простой метод, и вам не нужно отдельное $var:

function mediaType()
{
    $userAgents = array("iPhone", "Chrome");    
    $browser = $_SERVER['HTTP_USER_AGENT'];
    $var = 0;

    foreach($userAgents as $agent)
        if(strpos($browser, $agent) !== FALSE)
            return 1;

    return 0;
}
1 голос
/ 27 августа 2010
function mediaType()
{
    $userAgents = array("iPhone", "Chrome", ....);
    $browser = $_SERVER['HTTP_USER_AGENT'];

    foreach($userAgents AS $userAgent)
    {
        if(preg_match('#' . preg_quote($userAgent, '#') . '#i', $browser))
        {
             return true;
        }
    }

    return false;
}

Редактировать: Хм. Я опоздал: / Но в сравнении с другими ответами я бы использовал preg_match, чтобы найти браузер:)

1 голос
/ 27 августа 2010

Вы должны использовать петлю foreach .

function mediaType(){
   $userAgents = array("iPhone", "Chrome");    
   $browser = $_SERVER['HTTP_USER_AGENT'];

   foreach ($userAgents as $agent) {
     if (strpos($browser, $agent) !== false)
       return 1;
   }
   return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...