PHP Doku:: Negotiate clients preferred content type - function.http-negotiate-content-type.html

Verlauf / Chronik / History: (21) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzSonstige DiensteHTTPHTTP Funktionenhttp_negotiate_content_type

Ein Service von Reinhard Neidl - Webprogrammierung.

HTTP Funktionen

<<http_negotiate_charset

http_negotiate_language>>

http_negotiate_content_type

(PECL pecl_http >= 0.19.0)

http_negotiate_content_typeNegotiate clients preferred content type

Beschreibung

string http_negotiate_content_type ( array $supported [, array &$result ] )

This function negotiates the clients preferred content type based on its Accept HTTP header. The qualifier is recognized and content types without qualifier are rated highest.

Parameter-Liste

supported

array containing the supported content types as values

result

will be filled with an array containing the negotiation results

Rückgabewerte

Returns the negotiated content type or the default content type (i.e. first array entry) if none match.

Beispiele

Beispiel #1 Using http_negotiate_content_type()

<?php
$content_types 
= array('application/xhtml+xml''text/html');
http_send_content_type(http_negotiate_content_type($content_types));
?>


2 BenutzerBeiträge:
- Beiträge aktualisieren...
Vasil Rangelov
21.09.2007 14:18
Newer versions of this extension fix the bug from the previous note.

Still, if you want to ensure there's no match, you can use the array, as the array will remain empty.

I used this fact in the following technique to ensure good content negotiation between application/xhtml+xml and text/html, since IE sends only "*/*" and thus receives application/xhtml+xml if you use the current sample from the documentation.

<?php
$bestContentType
= http_negotiate_content_type(array('application/xhtml+xml', 'text/html'),
$contentTypes);
$contentType = (empty($contentTypes) ? 'text/html' : $bestContentType);
http_send_content_type($contentType);
?>

Note that at the time of writing, Opera accepts text/html with this approach, because it places application/xhtml+xml with a lower qualifier.
Pieter van Beek
3.07.2007 18:38
The documentation says:

Returns the negotiated content type or the default content type (i.e. first array entry) if none match.

It would seem that in fact, this method returns the empty string or NULL if none match.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)