Come scrivere codice specifico per browser con PHP

Posted in php da ShortLikeAFox il 21 luglio 2008

Così si desidera scrivere codice che viene visualizzato solo su alcuni browser ... Ci sono un certo numero di ragioni per voler fare questo. La prima volta che ho personalmente necessarie per fare questo si è verificato quando ho cercato di incorporare un mp3 su una certa pagina. Per qualche motivo non ho potuto scrivere il codice in modo che l'mp3 si svolgono sul browser I test su (IE, Firefox e Opera), e la validazione al tempo stesso. Se ricordo bene, era di Internet Explorer che è stata la causa del problema. La soluzione mi era venuto con l'utilizzo di un po 'di PHP per sapere quando l'utente è stato utilizzando IE, e poi incorporare le mp3 non valido se il codice che è stato il caso.

Questa soluzione ha portato alla riproduzione mp3 sempre correttamente e sempre convalidare la pagina, perché il W3C validator non si identifica come IE. Questo potrebbe non essere il modo più etico per raggiungere il rispetto del W3C, ma funziona.

Un'altra volta mi ricordo di aver bisogno di scrivere codice specifico browser è quando mi è stato avere un problema con IE 6 non visualizza il mio. Correttamente le immagini PNG. I googled circa e ha trovato un paio di soluzioni al problema, ma ciascuno di essi ha finito per fare il livello globale località sulle mie pagine. Invece di risoluzione dei problemi che il problema, mi sono recato con la soluzione rapida e ha deciso di visualizzazione. Gifs quando l'utente ha IE 6. Se l'utente ha un altro browser che aveva. Png problemi che ho figurato che è stato troppo male per lui.

Come fare:

Per prima cosa è necessario scrivere una piccola riga di codice per capire ciò che il vostro browser utente ha. Ecco come fare con PHP:

  • 'HTTP_USER_AGENT' ]; visitorsOS $ = $ _SERVER [ 'HTTP_USER_AGENT'];

Ecco tre esempi di ciò che $ visitorsOS può apparire come

  • Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;. NET CLR 1.0.3705;. NET
  • Opera/9.51 (Windows NT 5.1; U; pl)
  • Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: 1.9) Gecko/2008052906 Firefox

Il primo utente ha Internet Explorer 6, il secondo 9,51 Opera, Firefox e la terza.

Ora che sappiamo di più informazioni di quelle cui abbiamo veramente bisogno su computer del visitatore abbiamo bisogno di mettere le informazioni a un buon uso. Dire che si desidera scrivere il codice che viene visualizzato solo se l'utente è in esecuzione una qualsiasi versione di Internet Explorer. In questo caso si potrebbe fare così:

(’MSIE’,$visitorsOS)){ if (eregi ( 'MSIE', $ visitorsOS)) (

Codice che viene visualizzato solo se l'utente HA IE

)

else (

Codice che verrà visualizzato in TUTTI GLI ALTRI CASI

)

Io uso eregi, una espressione regolare tra maiuscole e minuscole partita invece di ereg, una espressione regolare tra maiuscole e minuscole partita. Non mi ricordo se lo faccio di paranoia, o se effettivamente ho trovato un caso in cui Internet Explorer identificato come MSIE. In entrambi i casi non eregi ferito in modo che nulla è ciò che io utilizzo. Volendo scrivere il codice per specifiche versioni di IE che richiedono solo una piccola modifica. invece di ... (eregi ( 'MSIE' ...) Vorrei usare qualcosa di simile (eregi ( 'MSIE 6.0' ...), se volevo solo il codice che compare per MSIE 6.0.