تعریف تعدادی متغیر در یک اسکریپت PHP با شرط نوع مرورگر کاربر
با سلام
یک اسکریپتی آماده کردم که توی مرورگرهای فایرفاکس و IE و اپرا ، کاملا شبیه هم اجرا نمیشه، یعین خروجی که به کاربر میده در هر 3 این مروگرها کاملا یکی نیست ، تست کردم برای اینکه اون چیزی که من می خوام عملی بشه ، می بایست متناسب با هر مروگری مقدارهای خاصی به بعضی از متغیرها بدم ، فرضا متغیر X رو برای فایرفاکس باید بدم 10 و برای اپرا بدم 5 و برای IE بدم 20 تا خروجی اسکریپتم توی هر 3 اینها مثل هم باشه ، حالا کاری که می خوام بکنم اینه که با قرار دادن مقدار متغیرهای داخل شرط این مشکل رو حل کنم ، یعنی شرطم اینطور باشه :
اگر مرورگر فایرفاکس بود {مقدار متغیرها این باشه}
در غیر اینصورت اگر اپرا بود {مقدار متغیرها این باشه}
در غیر اینصورت {مقدار متغیرها این باشه}
یخورده گشتم اما نتونستم اینو عملی کنم ، تنها دستوری که عایدم شد و مرورگر کاربر رو مشخص می کنه (در PHP) به این صورت هست :
$name= $_SERVER["HTTP_USER_AGENT"];
اما، نکته اینجاست که همچین چیزی رو من در یک فایل Ajax (در یک CMS) دیدم ، به صورت زیر شرط رو به کار برده بود :
if (is_moz)
{
**************
{
else if (is_opera)
{
**************
{
else
{
**************
{
ممنون میشم اگر راهنمایی بفرمایید .
نقل قول: تعریف تعدادی متغیر در یک اسکریپت PHP با شرط نوع مرورگر کاربر
خوب با نوشتن یه تابع ساده مشکل حل میشه. من تابع detect رو به صورت زیر نوشتم:
<?php
function detect() {
$browser = array ("IE", "OPERA", "MOZILLA", "NETSCAPE", "FIREFOX", "SAFARI");
$os = array ("WIN","MAC","LINUX");
$info['browser'] = "OTHER";
$info['os'] = "OTHER";
foreach ($browser as $parent)
{
$s = strpos(strtoupper($_SERVER['HTTP_USER_AGENT']), $parent);
$f = $s + strlen($parent);
$version = substr($_SERVER['HTTP_USER_AGENT'], $f, 5);
$version = preg_replace('/[^0-9,.]/','',$version);
if ($s)
{
$info['browser'] = $parent;
$info['version'] = $version;
}
}
foreach ($os as $val)
{
if (eregi($val,strtoupper($_SERVER['HTTP_USER_AGENT']))) $info['os'] = $val;
}
return $info;
}
?>
اینکه چطور ازش استفاده کنید ساده هست. تیکه کد زیر رو ببینید:
$d = detect();
$b = $d['browser'];
$v = $d['version'];
$o = $d['os'];
switch ($b) {
case 'IE';
echo "Internet Explorer";
break;
case 'FIREFOX';
echo "Firefox";
break;
default:
echo "Alvanweb";
break;
}
با این تابع جدای از نوع مرورگر میتونید ورژن مرورگر و سیستمعامل رو هم وارد شرط کنید.
موفق باشید