2010-06-09 8 views
7

काम नहीं कर रहा है। मेरा मतलब है कि आईपी और ओएस प्राप्त करने के लिए मेरे पास कई स्क्रिप्ट हैं लेकिन वैसे भी get_browser आंतरिक कार्य है और काम करना चाहिए, लेकिन यह नहीं। जब मैं उस समारोह पर print_r प्राप्त करने का प्रयास करता हूं।get_browser

Array ([browser_name_regex] => §^.*$§ [browser_name_pattern] => * [browser] => Default Browser [version] => 0 [majorver] => 0 [minorver] => 0 [platform] => unknown [alpha] => [beta] => [win16] => [win32] => [win64] => [frames] => 1 [iframes] => [tables] => 1 [cookies] => [backgroundsounds] => [cdf] => [vbscript] => [javaapplets] => [javascript] => [activexcontrols] => [isbanned] => [ismobiledevice] => [issyndicationreader] => [crawler] => [cssversion] => 0 [supportscss] => [aol] => [aolversion] => 0) 

मैं win7 और फ़ायरफ़ॉक्स का उपयोग कर रहा हूं। और मेरे पास नवीनतम ब्रोवैप है और php.ini में सेट है। इसके अलावा PHP एक त्रुटि प्राप्त करते समय त्रुटि देता है।

+0

इस तरह ब्राउज़र का पता लगाने कर से बचें। यह विफलता के लिए प्रवण है। अधिकांश उद्योग विशेषज्ञ यह निर्धारित करने के लिए कि उपयोगकर्ता का ब्राउज़र आपका कोड चलाने में सक्षम है या नहीं, यह निर्धारित करने के लिए जावास्क्रिप्ट का उपयोग करके ब्राउज़र में ** फीचर डिटेक्शन ** का उपयोग करने की सलाह देते हैं। – Spudley

उत्तर

6
php.net से

:

नोट: आदेश में यह काम करने के लिए, php.ini में अपने browscap कॉन्फ़िगरेशन सेटिंग browscap.ini फ़ाइल का सही स्थान पर पर बात करना होगा अपने प्रणाली। browscap.ini PHP के साथ बंडल नहीं है, लेकिन आपको अप-टू-डेट »php_browscap.ini फ़ाइल यहां मिल सकती है। जबकि browscap.ini में कई ब्राउज़रों पर जानकारी है, यह डेटाबेस वर्तमान रखने के लिए उपयोगकर्ता अद्यतनों पर निर्भर करता है। फ़ाइल का प्रारूप काफी आत्म-व्याख्यात्मक है।

लगता है कि आपकी browscap.ini अद्यतित नहीं है।

9

सुनिश्चित करें कि आपके पास एक अद्यतित browscap फ़ाइल है। get_browser के दस्तावेज़ में नोट्स पढ़ें।

यदि आप सर्वर व्यवस्थापक नहीं हैं, तो phpbrowcap देखें जो समान कार्यक्षमता लागू करता है लेकिन सर्वर-व्यापी की तुलना में किसी अन्य ब्रोस्वाक फ़ाइल का उपयोग करना आपके लिए संभव बनाता है।

13

मैंने सुना है कि कई लोग शिकायत करते हैं कि फ़ंक्शन उनकी साइट पर कैसे काम नहीं करता है। यदि आप मैन्युअल में एक सावधान नज़र रखना, तो आप आगे नीचे निम्न सूचना दिखाई देंगे:

  1. पहली बात करने की ज़रूरत है, तो अपने सिस्टम स्थापित browscap.ini है और यदि नहीं की जाँच करने के लिए है , क्या आप स्वयं ऐसा कर सकते हैं। phpinfo() फ़ंक्शन का आह्वान करें। इससे आपको अपने सिस्टम के बारे में कुछ जानकारी इकट्ठा करने में मदद मिलेगी:

  2. यदि browscap इंस्टॉल नहीं है, तो कॉन्फ़िगरेशन फ़ाइल (php.ini) पथ देखें। यह जहां अपने PHP विन्यास फाइल स्थित है और settings.After आपका काम हो गया browscap सक्षम है, यह कुछ इस तरह दिखना चाहिए:

    [browscap]

    browscap = 'डी: \ XAMPP \ php \ एक्स्ट्रा कलाकार \ browscap.ini "

  3. अपने अपाचे नीचे कोड

    $ ब्राउज़र = get_browser (शून्य, true) की कोशिश को पुनरारंभ

    ;

    print_r ($ ब्राउज़र);

  4. यदि अभी भी आपका get_browser() उचित कार्य नहीं कर रहा है तो आपकी browscap.ini फ़ाइल में समस्या हो सकती है। आप https://browsers.garykeith.com/downloads से अद्यतन browscap.ini फ़ाइल डाउनलोड कर सकते हैं और अपने browscap को प्रतिस्थापित कर सकते हैं।ini /php/extras/browscap.ini

  5. एक बार जब आप कर लेंगे, तो फिर से अपना अपाचे पुनरारंभ करें और कोड निष्पादित करें।

1
मैं कैसे कि समारोह का उपयोग करने के जानने के लिए ज्यादा समय बर्बाद

,

जब मैं अंत में उस आदमी को समझ गया कि समारोह का उपयोग कभी नहीं करना चाहिए, यह आपके प्रदर्शन मार डालेगा !!!

परिणाम की जांच करने के लिए get_browser के साथ/बिना प्रयास करें।

ab -c 100 -n 100 http://yourserver/ 

उपयोग preg_match_all('/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i', $_SERVER['HTTP_USER_AGENT']) बजाय

+0

चेतावनी: आपका कोड आईई 11 के साथ असफल हो जाएगा (जिसमें अब इसके एमए स्ट्रिंग में 'एमएसआईई' शामिल नहीं है)। शायद अन्य भी। – Spudley