Autor Zpráva
Hanour
Profil
Rozhodl jsem se pro celkem radikální řešení, přepracovat a pokračovat po přestávce v rozvoji webu o kalendářích (www.kalendar.info) ve validním XHTML 1.1 + MathML 2.0 + SVG 1.1. (matematické vzorce a vektorovou grafiku využiji).

Aktuální verze Firefoxu, Opery, Google Chrome a Safari zobrazování zvládají. Žel nejrozšířenější Internet Explorer soubory prostě nezobrazí, i když jsou validní (viz testovací stránka http://kalendar.info/cs/index.php ). Primárně nesleduji všeobecnou dostupnost stránek, ale kvalitu obsahu a na Microsoftí prohlížeč prostě rezignuju, když nejsou schopní věci staré deset let do prohlížeče zapracovat.

Potřebuji v PHP verze 5.3 (nikoliv pomocí JavaScriptu apod.) co nejjednodušeji detekovat prohlížeč. Skript po vyhodnocení prohlížeče a verze buď normálně zobrazí požadovanou stránku, anebo vygeneruje/přesměruje/zobrazí uživatelům Interet Exploreru i ostatních prohlížečů než výše jmenovaných a uživatelům starších verzí výše jmenovaných prohlížečů jednoduchou stránku (v HTML 4) s informací, že pro zobrazení potřebují a mohou si stáhnout některý z uvedených prohlížečů v aktuální verzi.

Už několik hodin bloudím po českém internetu a plně vyhovující, zejména aktualizované řešení (stále nové verze prohlížečů) jsem prostě nenalezl ve zdrojovém kódu. Času mám málo, jsem laik a samouk, proto nevíte prosím někdo o nějakém hotovém řešení, které se dá prostě jenom převzít a funguje spolehlivě. Díky.
Anonym
Profil *
toto nepomůže?
function ae_detect_ie()
    {
    if (isset($_SERVER['HTTP_USER_AGENT']) && 
    (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false))
        return true;
    else
        return false;
    }


funkce detekuje ie, ale když si vypíšeš ten řetězec v různých prohlížečích, tak snad budeš moudrý
Majkl578
Profil
Anonym:
K čemu ta podmínka?

Stačí:
function isUsingIE()
{
  return isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE;
}
Chamurappi
Profil
Reaguji na Anonyma:
Tvůj skript odfiltruje i devítku, která XHTML bude umět. Nevím, jestli i to je v Hanourově zájmu.
Píše, že chce zablokovat vše vyjma zmíněných prohlížečů (takže i roboty vyhledávačů, archivátory apod.), takže by ta podmínka asi měla být postavená tak, aby detekovala zmíněné prohlížeče, nikoliv aby detekovala Explorer.


Reaguji na Hanoura:
Primárně nesleduji všeobecnou dostupnost stránek, ale kvalitu obsahu
Postřehne a ocení některý z množiny vyvolených návštěvníků onen kvalitativní skok, který ti použité technologie nabízejí?
Universální dostupnost je základním předpokladem kvality, špatně zvolené technologie vždycky budou vada na kráse, nehledě na to, jak racionálně si je obhájíš. Nutit návštěvníka k instalaci nějakých programů je docela přežitek, ne? To v dnešní době dělají především výrobci malwaru.

na Microsoftí prohlížeč prostě rezignuju, když nejsou schopní věci staré deset let do prohlížeče zapracovat
Jako autor stránky jsi měl deset let na to, aby sis všiml, které z těch starých technologií nemají perspektivu (a pokud ji mají, tak jak vzdálenou). Je to podobné, jako kdybych udělal stránku využívající VML a nepustil na web tebou vyjmenované prohlížeče, když do nich nejsou jejich tvůrci schopní zapracovat jedenáct let staré věci. Byla by to chyba, ne?

Z tebou zmíněných technologií:
• XHTML ti oproti HTML nepřinese vůbec nic, kromě lepší detekce syntaktických chyb.
• SVG můžeš vložit přes <object> i do HTML a nepodporujícím předložit <img> s automaticky generovaným PNG ekvivalentem.
• S MathML je větší problém, ale i k němu existuje řada nástrojů, které ho učiní stravitelnějším pro všechny současné prohlížeče, stačí trochu hledat.

Času mám málo, jsem laik a samouk
Investoval jsi poměrně dost času do zkoumání okrajových technologií.
Proč tolik dbáš na validitu (soudě dle zástupu ikonek v patičce), když proklamovaný cíl standardů číslo 1 zahazuješ?

nevíte prosím někdo o nějakém hotovém řešení, které se dá prostě jenom převzít
Prohlížeče podporující XHTML jdou většinou rozeznat podle HTTP hlavičky Accept. Stačí trochu pohledat, výsledky hledání „PHP Accept application/xhtml+xml“ v Googlu:
 1 • Serving XHTML with the correct mime type using PHP
 2 • PHP and 'application/xhtml+xml' — Anne's Blog
 3 • XML.com: The Road to XHTML 2.0: MIME Types
 4 • Application/xhtml+xml - Schillmania.com
 5 • XHTML MP Tutorial: XHTML Mobile Profile MIME Types and File Extension
 6 • PHP, XHTML MIME type and Caching | Frames of Reference
 7 • How to serve XHTML as application/xhtml+xml - CodingForums.com
 8 • Serving XHTML As XML
hanour
Profil *
Chamurappi:
Prohlížeče podporující XHTML jdou většinou rozeznat podle HTTP hlavičky Accept.
Díky za nápovědu, už jsem to vygooglil upravil do skriptu a funguje to :-)

Jinak jsem si vědom, že jde o radikální postoj, obětovat obecnou přístupnost webu na oltář "okrajových technologií"... pravda věnoval jsem docela času četbě diskusí, zda XHTML (+ SVG a MathML) ano či ne i s ohledem na připravované HTML5.

Psal jsem cca před dvěma měsíci i Microsoftu něco o tom, že je ostuda, že jejich "výtvor" neumí, co konkurence už řadu let byť s přesvědčením, že je to zbytečné... a vida IE9 by mělo umět XHTML - takže v zásadě bude po problému?

Okrajové technologie (SVG, MathML apod.) zůstanou okrajovými, pokud je nebudeme hojněji využívat, ale v uvedené kombinaci pro mé specializované stránky prostě nabízejí více a hodí se, tak proč se jich vzdávat, když ten, kdo se bude chtít k takto napsanému webu dostat, se za vynaložení poměrně malého úsilí spojeného s aktualizací prohlížeče či instalací víceúčelového k němu prostě dostane... ale to je v zásadě na nikdy nekončící diskusi. Vždyť jen, než se ujalo rozšířenější používání unicodu na českých webech, 10 let také žádná doba...

K uvedenému postoji mne motivovala navíc řada existujících stránek, které prostě směřují uživatele, aby updatoval prohlížeče... jen jsem prostě rychle nevěděl, jak to udělat - takže ještě jednou díky za radu :-)

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: