How do I detect Mobile Safari server side using PHP?

后端 未结 6 1900
深忆病人
深忆病人 2020-12-19 04:32

Mobile Safari is a very capable browser, and it can handle my website as it is perfectly. However, there are a few elements on my page that could be optimized for browsing u

相关标签:
6条回答
  • 2020-12-19 04:50

    I have published a new mode to detect devices in any programming language (JSP, PHP, Perl, Python.....), it's called Apache Mobile Filter is an Apache module (http://modules.apache.org/search.php?id=1787) that detect mobile device and also can adapt the images to the screen size of device.

    For more info: http://www.idelfuschini.it/it/apache-mobile-filter-v2x.html

    0 讨论(0)
  • 2020-12-19 04:52

    Thanks Joe, I read that page and found the WebKit detection library (in JavaScript). I changed the code to suit my needs.

    For anyone that's interested, here's my solution.

    <?php
    
    /* detect Mobile Safari */
    
    $browserAsString = $_SERVER['HTTP_USER_AGENT'];
    
    if (strstr($browserAsString, " AppleWebKit/") && strstr($browserAsString, " Mobile/"))
    {
        $browserIsMobileSafari = true;
    }
    
    ?>
    
    0 讨论(0)
  • 2020-12-19 05:03
    $_SERVER['HTTP_USER_AGENT']  
    

    That will give you the user-agent string back which you can compare to mobile safari.

    p.s. http://wurfl.sourceforge.net/ WURFL may help you determine which UAs you want.

    0 讨论(0)
  • 2020-12-19 05:07
    <?php
    
    // detect Safari only!
    
    $string = $_SERVER['HTTP_USER_AGENT'];
    
    if (strstr($string, " AppleWebKit/") && strstr($string, " Safari/") && !strstr($string, " CriOS"))
        {
            echo 'See in Safari only';
        }
    
    ?>   
    
    0 讨论(0)
  • 2020-12-19 05:09

    Compare the user agent string with the one of a Safari Mobile uses:

    Safari Mobile User Agent String

    0 讨论(0)
  • 2020-12-19 05:11

    Mozilla/5.0 (webOS/1.0; U; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Pre/1.0 that is the browser for the palm Pre, and the word 'Mobile' is not there.

    I am working on making my detect work fully with all newer capable browsers. After looking at the mytouch, G1, Palm Pre, droid and others, (but not all) I am now confident this is workable for all new phones:

    if(preg_match("/applewebkit/i", $_SERVER['HTTP_USER_AGENT']) && preg_match("/(mobile|pre)/i", $_SERVER['HTTP_USER_AGENT'])) header("Location: http://simplefoodie.com/iphone/?carryover=".urlencode($_SERVER[REQUEST_URI]));

    0 讨论(0)
提交回复
热议问题