سؤال

كيفية تحديد متصفح المستخدم باستخدام PHP؟

بحيث إذا كان متصفح المستخدمين هو IE ، فإن المتغير $ alert = "onbeforeunload" وإذا لم يكن IE ، على سبيل المثال Firefox (آخر) ثم $ alert = "Onload.

المساعدة موضع تقدير كبير.

شكرًا

يرجى أيضًا ملاحظة أنه لا يمكنني تثبيت prowscap.ini على خادم PHP الخاص بي.

هل كانت مفيدة؟

المحلول

معرفة ما إذا كان هذا الرمز يعمل من أجلك

<?php
function detect_ie(){
    return (sizeof(explode("MSIE",$_SERVER['HTTP_USER_AGENT'])) > 1);
}

if (detect_ie())
    $event = "onbeforeunload";
else
    $event = "onload";

?>

نصائح أخرى

لا يمكنك. ليس بدقة 100 ٪. أفضل طريقة للتحقق من وكيل المستخدم ، ومع ذلك فإن المستخدم حر لعدم توفيره ، أو مزيفًا ، لذا حاول تجنب الاعتماد عليه.

$ua = $_SERVER['HTTP_USER_AGENT'];

إذا كان المتصفح هو IE ، فيجب أن يكون (Roughly) تطابق (حيث # رقم)

Mozilla/#.0 (compatible;  MSIE #.##;

الذي سيكون Regex شيء مثل

'~^Mozilla/[0-9]\.0 (compatible;\s+MSIE~i'

بدلاً من ذلك ، يمكنك فقط التحقق من السلسلة "MSIE" والتي ستكون أبسط وأقل صرامة قليلاً.

ولكن كما قال Michal ، هناك تنافسات أخرى (أفضل) على صفحة اليدوة get_browser

استعمال $_SERVER['HTTP_USER_AGENT']

تحقق مما إذا كان يحتوي على "IE" مباشرة يتبعه رقم.

أفضل القيام بذلك في JavaScript نفسها رغم ذلك.

if (typeof window.onbeforeunload !== "undefined") window.onbeforeunload = myFunc;
else window.onunload = myFunc;

مكتبات JavaScript أفضل بكثير لاكتشاف ومعالجة سلوك المتصفح المختلفة. فقط دع مكتبة ناضجة مثل jQuery تتعامل مع هذا وستكون بخير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top