2010-06-09 4 views
7

non funziona. Voglio dire che ho molti script per ottenere ip e os, ma in ogni caso get_browser è una funzione interna e dovrebbe funzionare ma non lo è.quando cerco di ottenere un print_r sulla funzione che ottengo.get_browser non funziona

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) 

Sto usando Win7 e Firefox. E ho l'ultima browcap e impostato in php.ini.with che php restituisce un errore mentre idont ne riceve uno.

+0

Si prega di evitare di fare il rilevamento del browser come questo. È incline al fallimento. La maggior parte degli esperti del settore consiglia di utilizzare ** rilevamento funzionalità ** nel browser stesso utilizzando javascript per determinare se il browser dell'utente è in grado di eseguire il codice. – Spudley

risposta

6

da php.net:

Nota: Al fine di questo lavoro, la vostra impostazione di configurazione BrowsCap in php.ini deve puntare alla corretta posizione del file Browscap.ini sul tuo sistema. browscap.ini non è in bundle con PHP, ma è possibile trovare un file aggiornato »php_browscap.ini qui. Mentre browscap.ini contiene informazioni su su molti browser, lo si basa sugli aggiornamenti degli utenti per mantenere aggiornato il database . Il formato del file è abbastanza intuitivo.

suona come il tuo browscap.ini non è aggiornato.

9

Assicurarsi di disporre di un file browscap aggiornato. Leggi le note nella documentazione di get_browser.

Se non si è un amministratore di server, controllare phpbrowcap che implementa la stessa funzionalità ma consente di utilizzare un altro file broswcap rispetto a quello a livello di server.

13

Ho sentito molte persone lamentarsi di come la funzione non funzioni sul loro sito. Se si dà un'occhiata attenta al manuale, si noterà il seguente avviso, più in basso:

  1. La prima cosa che devi fare è quello di verificare se il sistema è installato Browscap.ini e se non , puoi farlo da solo. invocare la funzione phpinfo(). Questo ti aiuterà a raccogliere alcune informazioni sul tuo sistema:

  2. Se browscap non è installato, cerca il percorso File di configurazione (php.ini). Questo è dove il vostro file di configurazione di PHP si trova e permette BrowsCap settings.After il gioco è fatto, dovrebbe essere simile a questa:

    [BrowsCap]

    BrowsCap = "D: \ xampp \ php \ extra \ Browscap.ini"

  3. Riavviare l'apache provare il codice qui sotto

    $ browser = get_browser (null, true);

    print_r ($ browser);

  4. se il tuo get_browser() non funziona correttamente potrebbe esserci un problema con il tuo file browscap.ini. È possibile scaricare il file browscap.ini aggiornato da https://browsers.garykeith.com/downloads e sostituire il browscap.ini si troverà in /php/extras/browscap.ini

  5. Una volta terminato, riavvia nuovamente l'apache ed esegui il codice.

1

ho sprecato molto tempo per imparare a utilizzare che func,

Mentre ho finalmente capito che l'uomo non dovrebbe mai usare questa funzione, ucciderà le prestazioni !!!

provare con/senza get_browser per verificare il risultato.

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

uso preg_match_all('/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i', $_SERVER['HTTP_USER_AGENT']) invece

+0

Attenzione: il codice non funzionerà con IE11 (che non include più "MSIE" nella stringa UA). Probabilmente anche altri. – Spudley