Hallo Christian,
[schnipp]
Was ich mich gerade Frage, gibt es sowas schon im PEAR?
Ähm, ja, wieso mache ich mir eigentlich die Arbeit nochmal? http://pear.php.net/manual/en/core.http.http.php (HTTP::negotiateLanguage)Moment mal, hab' gerade in den Source geschaut,
Aber nicht in's CVS
die Implementation von denen ist nicht sehr sauber, zum einen verwendet sie die ereg-Funktionen (ok, ich nehme auch split, sollte ich vielleicht austauschen)
Da hast du recht ist nicht ganz sauber.
und zum anderen arbeitet sie nicht konform. (sie erlaubt gar keine Bindestriche und eine beliebige Anzahl an Buchstaben für den Ländercode, dabei sind für den ersten Teil 1-8 Buchstaben erlaubt, und für den zweiten Teil (nach dem ersten Bindestrich) 1-8 Buchstaben und weitere Bindestriche erlaubt)
Die aktuelle version 1.16 erlaubt Bindestriche
http://cvs.php.net/diff.php/pear/HTTP/HTTP.php?r1=1.15&r2=1.16&ty=h
Und so ganz bin ich mit deiner Beschreibung der 'Language Tags' nicht einverstanden. So wie ich das verstehe sollte es so sein:
([A-Za-z]{1,8})(-[A-Za-z]{1,8})*
Mal ein paar Beispiele:
Ich verwende mal deine Tabelle
Code Erlaubt? von PEAR 1.16 akzeptiert?
------------------------------------------------------------
x-klingon X X
hallodiesisteinesprache - X
x-diesisteinesprache - X
de-ch X X
de-at X X
de-ch-zuer X X
de-ch-zuerich X X
^^^^^^^^^^^^^^
Das (denke ich) ist OK
http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.10
x-pig-latin X X
dech-zuerich X X
de-a-b-c X X
------------------------------------------------------------
de X X
at X X
it X X
es X X
fr X X
(ob die o.g. Sprachcodes teilweise Sinn ergeben, ist eine andere Frage)
:-) http://toter-link.de/php/Smiley.html
Außerdem gibt's einen Fallback auf die Länder-TLD, was IMHO bestenfalls grober Unfug ist.
Da hast du recht, was das soll kann ich mir auch nicht vorstellen.
Gruß
Der Linker