简体   繁体   English

PHP循环检查数组中是否存在字符串,然后输出布尔值

[英]PHP loop checking existence of a string in an array then outputting a boolean

Fairly rubbish with PHP, this is a continuation on from my last question . 用PHP相当垃圾,这是我上一个问题的继续。

I have a list of user agents inside an array, and I want an output to be true if the user agent matches one listed inside the array. 我在数组中有一个用户代理列表,如果用户代理与数组中列出的一个匹配,我希望输出为true。

This is what I have for a single user agent: 这是我为单个用户代理所拥有的:

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

I want something like this: 我想要这样的东西:

<?php

function mediaType(){

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

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

    return $var;        
}

?>

I guess a while loop would be a good option, but I am clueless. 我想一会儿循环是个不错的选择,但我一无所知。

You should use a foreach loop . 您应该使用一个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;
}

Here's your sweet and simple method and no need for a separate $var : 这是您的简单方法,不需要单独的$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;
}
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;
}

Edit: Hm I was too late :/ But in comaprison to the other answers I would use preg_match to find the browser :) 编辑:嗯,我来不及了:/但与其他答案相比,我会使用preg_match查找浏览器:)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM