phpbar.de logo

Mailinglisten-Archive

[php] Erkennen eines Character-Encodings

[php] Erkennen eines Character-Encodings

Martin Rozmus martin.rozmus at gmx.net
Die Dez 14 15:17:32 CET 2004


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