Kako napisati Browser Specifični Kod sa PHP

Posted in PHP by ShortLikeAFox na 21. srpnja 2008

Dakle želite napisati kod koji se pojavljuje samo na određenim preglednicima ... Postoje brojni razlozi da želite učiniti. Prvi put sam osobno je potrebno da to učinite dogodili dok sam bio težak da biste ugradili MP3 na određenu stranicu. Iz nekog razloga ne bih mogao napisati kod tako da je mp3 bi igrati na pretraživače testirati na (IE, Firefox i Opera), i provjeriti u isto vrijeme. Ako JA sjećati se korektno, da je Internet Explorer koja je uzrokuje. Rješenje sam došao gore sa bilo da koristi nešto PHP saznati kada korisnik je pomoću IE, a zatim ugraditi u mp3 u ne-valjani kôd ako to je bio slučaj.

Ovo rješenje je dovela do mp3 uvijek svira korektno i stranice uvijek provjere, jer je W3C validator ne identificira kao IE. To možda neće biti najviše etickih način da dođete do W3C poštovanje, ali radi.

Drugi put Sjećam trebaju napisati preglednik specifične kôd je kad sam bio vlasništvo problem sa IE 6 ne prikazujete moje. Png slike ispravno. Ja googled uokolo i pronašao nekoliko rješenja za problem, ali obojica zavrsilo messing up cjelokupni sloj lokacije na mojim stranicama. Umjesto da za rješavanje problema problem, JA je otišao sa brzo rješenje i odlučio za prikaz. Gifs kada korisnik imao IE 6. Ako korisnik imao drugog preglednika koji je imao. Png problema sam shvatio da je previše loše za njega.

Kako ćete to učiniti:

Prvo morate napisati malo redak koda za shvatiti što vaš browser korisnik. Evo kako to učiniti s PHP:

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

Ovdje su tri primjera šta $ visitorsOS može izgledati

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

Prvi korisnik je Internet Explorer 6, drugi Opera 9,51, a treći Firefox.

Sada znamo da se više informacija nego što smo stvarno potreba o posjetitelja računala nam je potrebno da stavite tu informaciju kako dobro koristiti. Recimo da želite napisati kod koji će se pojaviti samo ako je korisnik trčanje bilo koju verziju Internet Explorera. U tom slučaju biste to učinili:

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

Kod koji će se pojaviti isključivo ukoliko korisnik ima IE

)

else (

Kod koji će se pojaviti u svim drugim slučajevima

)

Koristim eregi, slučaj nesenzibilan Regularni izraz utakmicu umjesto ereg, slučaju osjetljive Regularni izraz podudaraju. Ne sjećate li to učinili iz paranoja, ili ako sam stvarno našla slučaju Internet Explorera identificiran kao msie. U oba slučaja eregi neće boljeti nešto tako da je ono što ja upotrebi. Želeći da napišete kod za određene verzije IE zahtijevat će samo malo promijeniti. umjesto ... (eregi ( "MSIE" ...) ja bi nešto slično (eregi ( "MSIE 6,0 '...), ako sam htjela da se samo kod pojavio za MSIE 6.0.