Hur du skriver webbläsare särskild kod med PHP
Vill du skriva koden som bara förekommer i vissa webbläsare ... Det finns flera skäl att vilja göra detta. Första gången jag personligen som behövs för att göra detta inträffade när jag försökte bädda in en mp3 på en viss sida. Av någon anledning kunde jag inte skriva koden så att mp3 skulle spela på den webbläsare jag testa på (IE, Firefox och Opera), och validera på samma gång. Om jag minns rätt, det var Internet Explorer som orsakar problemet. Lösningen jag kom fram till var att använda lite PHP för att ta reda på när användaren använder IE, och sedan bädda in mp3 i icke-giltigt nummer om så var fallet.
Denna lösning ledde till mp3 alltid spelar på rätt sätt och sidan alltid validera, eftersom W3C validator aldrig identifierar sig som IE. Detta kanske inte är de mest etiska sättet att nå W3C överensstämmelse, men det fungerar.
En annan gång jag minns att behöva skriva webbläsare särskild kod är när jag hade ett problem med Internet Explorer 6 inte visar min. Png-bilder korrekt. Jag googled runt och hittade ett par lösningar på problemet, men båda hamnade driver upp den totala lagret platser på mina sidor. I stället för felsökning av detta problem, jag gick med snabb lösning och beslöt att visa. Gifs när användaren hade IE 6. Om användaren hade en annan webbläsare som hade. Png problem jag tänkte att det var synd för honom.
Hur man gör det:
Först måste du skriva en liten rad i koden ta reda på vad din webbläsare användaren har. Här är hur man gör det med PHP:
- 'HTTP_USER_AGENT' ]; $ visitorsOS = $ _SERVER [ "HTTP_USER_AGENT"];
Här är tre exempel på vad $ visitorsOS kan se ut
- 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; sv-SE; rv: 1.9) Gecko/2008052906 Firefox
Den första användaren har Internet Explorer 6, den andra Opera 9.51, och den tredje Firefox.
Nu när vi vet mer information än vad vi verkligen behöver om besökarens dator behöver vi denna information till god användning. Säg att du vill skriva kod som visas endast om användaren kör någon version av Internet Explorer. I så fall skulle du göra det här:
(’MSIE’,$visitorsOS)){ om (eregi ( "MSIE", $ visitorsOS)) (
Kod som visas endast om användaren har IE
)
else (
Kod som kommer att finnas med i alla andra fall
)
Jag använder eregi, en skiftlägesokänsligt vanligt uttryck match i stället för ereg, en skiftlägeskänslig vanligt uttryck matchar. Jag minns inte om jag gör detta av paranoia, eller om jag faktiskt hittat ett fall där Internet Explorer identifierade sig som MSIE. I båda fallen eregi kommer inte att skada något så det är vad jag använder. Vill skriva koden för särskilda versioner av IE endast skulle kräva en liten ändring. i stället för ... (eregi ( "MSIE" ...) Jag skulle använda något liknande (eregi ( "MSIE 6.0" ...) om jag ville kod som fanns bara för MSIE 6.0.






















