Cum de a scrie cod specific de browser cu PHP

Posted in php de ShortLikeAFox iulie, 21, 2008

Deci doriţi să scrieţi codul care apare numai pe anumite browsere ... Există un număr de motive pentru a vrei sa faci asta. Prima dată când am nevoie de personal pentru a face acest lucru a avut loc atunci când am fost încercarea de a încorpora un mp3 de pe o anumită pagină. Pentru anumite motive nu am putut scrie codul pentru ca mp3-ar juca pe browser-am de test de pe (IE, Firefox, şi Opera), şi valida în acelaşi timp. Dacă îmi amintesc corect, acesta a fost de Internet Explorer care a fost cauza problemei. Soluţia am venit cu a fost de a folosi un pic de PHP pentru a afla când a fost de utilizator folosind IE, şi apoi a încorpora în mp3 non-valide în cazul în care codul a fost cazul.

Această soluţie a condus la redarea mp3 întotdeauna corect şi întotdeauna în pagina de validarea, W3C validator pentru că niciodată nu se identifică ca IE. Acest lucru nu ar putea fi cel mai etic mod de a ajunge la respectarea W3C, dar funcţionează.

Imi amintesc de un alt nevoie de timp pentru a scrie cod specific este de browser atunci când am avut o problemă cu IE 6 nu afişarea mea. Png imagini corect. Am googled în jurul şi a găsit o pereche de soluţii la această problemă, dar atât de ajuns sa le tragi până în ansamblu strat locatii de pe paginile mele. În loc de depanare că problema, m-am dus cu soluţie rapidă şi a decis să se afişeze. GIFs atunci când utilizatorul a avut IE 6. Dacă utilizatorul a avut un alt browser care a avut. Png probleme m-am gândit că a fost prea rău pentru el.

Cum se face:

Mai întâi, trebuie să scrieţi o mică linie de cod pentru a seama ce a browser-ului tău de utilizator. Iată cum să faci asta cu PHP:

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

Iată trei exemple de ce $ visitorsOS poate arata ca

  • Mozilla/4.0 (compatibile; 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

Primul utilizator a Internet Explorer 6, Opera 9.51 cea de-a doua, a treia şi Firefox.

Acum, că ştim mai multe informaţii decât am nevoie despre vizitatorului avem nevoie de computer pentru a pune aceste informaţii pentru a folosi bine. Spune doriţi să scrieţi cod care va apărea doar dacă utilizatorul execută orice versiune de Internet Explorer. În acest caz te-ar face acest lucru:

(’MSIE’,$visitorsOS)){ dacă (eregi ( 'MSIE', $ visitorsOS)) (

Cod, care va apărea doar dacă utilizatorul are de exemplu

)

else (

Cod care va apărea în toate celelalte cazuri

)

Am utilizare eregi, un caz insensibil expresie regulată se potrivesc în loc de ereg, un caz de sensibile expresie regulată se potrivesc. Nu-mi amintesc dacă am face acest lucru din paranoia, sau dacă de fapt, am găsit un caz în care Internet Explorer-se ca MSIE identificate. În ambele cazuri eregi nu va doare nimic, deci este ceea ce am de utilizare. Vroiam să scrieţi codul pentru anumite versiuni de IE ar necesita doar o mică schimbare. în loc de ... (eregi ( 'MSIE' ...) Mi-ar folosi ceva de genul (eregi ( "MSIE 6.0" ...), dacă am vrut doar codul care a apărut pentru MSIE 6.0.

| Comentarii