[英]If Windows download $win_file if Mac download $mac_file
嗨,我有一个小问题!
我有一个应用程序的“下载”按钮,但它适用于Windows和Mac两个平台。 我想自动化该过程,当客户端点击下载按钮时,我需要浏览器自动识别OS平台。
并取决于此应该是这样的:如果Windows下载$win_file
如果Mac下载$mac_file
如何在PHP中做到这一点?
谢谢!
您可以使用useragent字符串,并通过以下代码获取它:
$userAgent = $_SERVER['HTTP_USER_AGENT'];
它会给你这样的东西:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2
您将必须像下面这样检查此字符串:
if(strpos($userAgent, "Win") !== FALSE) {
// Execute windows code
} elseif(strpos($userAgent, "Mac") !== FALSE) {
// Execute mac code
}
Google告诉我看一下该网站: http : //www.danielkassner.com/2010/06/11/get-user-operating-system-with-php
<?php
/*
Author: Daniel Kassner
Website: http://www.danielkassner.com
*/
function getOS($userAgent) {
// Create list of operating systems with operating system name as array key
$oses = array (
'iPhone' => '(iPhone)',
'Windows 3.11' => 'Win16',
'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)', // Use regular expressions as value to identify operating system
'Windows 98' => '(Windows 98)|(Win98)',
'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)',
'Windows XP' => '(Windows NT 5.1)|(Windows XP)',
'Windows 2003' => '(Windows NT 5.2)',
'Windows Vista' => '(Windows NT 6.0)|(Windows Vista)',
'Windows 7' => '(Windows NT 6.1)|(Windows 7)',
'Windows NT 4.0' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)',
'Windows ME' => 'Windows ME',
'Open BSD'=>'OpenBSD',
'Sun OS'=>'SunOS',
'Linux'=>'(Linux)|(X11)',
'Safari' => '(Safari)',
'Macintosh'=>'(Mac_PowerPC)|(Macintosh)',
'QNX'=>'QNX',
'BeOS'=>'BeOS',
'OS/2'=>'OS/2',
'Search Bot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp/cat)|(msnbot)|(ia_archiver)'
);
foreach($oses as $os=>$pattern){ // Loop through $oses array
// Use regular expressions to check operating system type
if(eregi($pattern, $userAgent)) { // Check if a value in $oses array matches current user agent.
return $os; // Operating system was matched so return $oses key
}
}
return 'Unknown'; // Cannot find operating system so return Unknown
}
?>
<?php
echo getOS($_SERVER['HTTP_USER_AGENT']);
?>
应该可以使用了,但是还没有尝试过。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.