Mailinglisten-Archive |
Moin,
Am Dienstag, 14. Dezember 2004 13:28 schrieb Andreas Lange:
> ich brauche für ein Script einen zuverlässigen Code, der das
> Character-Encoding einer Webseite erkennt.
>
> Folgenden Ansatz habe ich probiert:
>
> $html = file_get_contents('http://www.example.com/');
> mb_detect_encoding($html,"ASCII,JIS,UTF-8,EUC-JP,SJIS",true)
>
> Das funktioniert oft, aber eben nicht immer. Sehr oft erkennt er UTF-8
> Seiten nicht.
>
>[...]
> Gibt es eine Möglichkeit von einer Webseite auch den HTTP-Header zu
> bekommen? Vorzugsweise ohne externe Klassen wie z.B. HTTP_Request von
> PEAR, also mit "Bordmitteln"?
>
>
$fp = fsockopen ("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
fputs ($fp, "HEAD $uri HTTP/1.1\r\n\r\n");
while (!feof($fp)) {
echo fgets($fp,128);
}
fclose($fp);
}
Damit bekommst du den Header [1] des httpds bzgl. der angeforderten $uri. Ob
dort die Information über die Kodierung steht, ist IMO nicht sicher.
[1] http://www.html-world.de/program/http_3.php#head-methode
P.S. Gruß an Vbr. Thilo
--
Mit freundlichem Gruß
Martin Rozmus
Email: martin.rozmus at gmx.net
PGP: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x0B13366C
php::bar PHP Wiki - Listenarchive