- From: Dominique Hazaël-Massieux <dom@w3.org>
- Date: Fri, 19 Aug 2005 12:46:00 +0200
- To: James Pickering <jp29@cox.net>
- Cc: www-qa@w3.org
Le samedi 06 août 2005 à 21:49 +0100, Jim Ley a écrit : > "James Pickering" <jp29@cox.net> > >Their Technical Department was not encouraging about > >effecting Content-Negotiation but I found that inserting the following > >PHP code .......... > > [...] > > Unfortunately this is incorrect, and would violate HTTP 1.1, the Accept > header is considerably richer in what it can say than the above uses. FWIW, I have been using the PHP class available at: http://jking.dark-phantasy.com/code/php/class.contentnegotiation.phps to deal with my content negotiation needs. I'm not sure how complete it is in terms of parsing correctly HTTP headers (anybody knows a test suite I could use?), but at least it passes the following tests: <?php require_once("class.contentnegotiation.php"); $tests = array("text/html,application/xhtml+xml" => "text/html", "text/html;q=0.1, application/xhtml+xml;q=0.5" => "application/xhtml+xml", "text/html;q=0.1, application/xhtml+xml;q=0" => "text/html", "text/html;q=\"0.5\",application/xhtml+xml;q=\"0.5\"" => "text/html"); foreach($tests as $input=>$output) { $_SERVER["HTTP_ACCEPT"]=$input; $conneg = new contentNegotiation(); if ($conneg->compareQ("text/html,application/xhtml+xml")==$output) { echo "Success\n" ; } else { echo "failure\n" ; } } ?> (I've found many sites that proposed to deal with the particular case of conneg between application/xhtml+xml and text/html, e.g.: http://www.autisticcuckoo.net/archive.php?id=2004/11/03/content-negotiation http://keystonewebsites.com/articles/mime_type.php http://mathibus.com/archive/2005/04/php-xhtml-content-negotiation but none of their code seems to pass correctly the tests above) Depending on the feedback I get, I'll update http://www.w3.org/2003/01/xhtml-mimetype/content-negotiation accordingly. Dom -- Dominique Hazaël-Massieux - http://www.w3.org/People/Dom/ W3C/ERCIM mailto:dom@w3.org
Received on Friday, 19 August 2005 10:46:08 UTC