2016-07-03 6 views
0

Ich muss mit simpl_html_dom deutsche Seite analysieren. Ich habe ein Problem mit deutschen Umlauten, weil utf-8 Umlaute nicht unterstützt. Ich weiß, wenn Text von UTF-8 in UTF-16 oder ISO-8859-1 Problem zu lösen. Ich benutze CURL für Inhalt Seite zu bekommen. Diese Seite hat ISO-8859-1 Zeichensatz. Ich versuche CURLOPT_ENCODING ISO-8859-1, aber Curl immer den UTF-8-Text zurückgeben.Ich weiß nicht, was zu tun. Code dieser Methode.Warum Curl Charset nicht ändern?

public function testsec() 
{ 
    require_once DIR_SYSTEM.'library'.DIRECTORY_SEPARATOR.'simpleHtml'.DIRECTORY_SEPARATOR.'simple_html_dom.php'; 
    $regexpSecond = "~Möglicherweise.*? Vielen Dank~su";   
    $headers = array(
     "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0", 
     "Accept: text/plain", 
     "Connection: keep-alive", 
    ); 

    $fp = fopen(DIR_ADMIN.'logCurl.txt','w+'); 
    $head = fopen(DIR_ADMIN.'headers.txt','w+'); 
    $curl = curl_init("http://test.site.com/bla-bla-bla"); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); 
    curl_setopt($curl, CURLOPT_ENCODING , "UTF-16");   
    curl_setopt($curl, CURLOPT_VERBOSE, 1); 
    curl_setopt($curl, CURLOPT_STDERR, $fp); 
    curl_setopt($curl, CURLOPT_HEADER ,$headers); 
    curl_setopt($curl, CURLOPT_WRITEHEADER, $head); 
    $result = curl_exec($curl); 
    curl_close($curl); 
    fclose($fp); 
    fclose($head); 
    $html = str_get_html($result); 
    echo mb_detect_encoding($result); //utf-8 

} 

Headers Reaktion

HTTP/1.1 200 OK 
Date: Sun, 03 Jul 2016 05:22:34 GMT 
Server: Apache 
Set-Cookie: JTLSHOP=c1qv3vafghmf3ih43g5m96epi4; path=/ 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Cache-Control: max-age=1, private, must-revalidate 
Pragma: no-cache 
Vary: Accept-Encoding 
X-Powered-By: PleskLin 
Connection: close 
Transfer-Encoding: chunked 
Content-Type: text/html; charset=iso-8859-1 
+0

Das ist nicht, wofür CURLOPT_ENCODING ist, es ist nicht für Zeichensatzcodierungen, es ist für gzip. Wenn der Antwort-Header sagt, dass es iso-8859-1 ist, dann ist es wahrscheinlich iso-8859-1, aber du hast die URL nie gepostet, so dass wir es nicht sagen können. – pguardiario

Antwort

Verwandte Themen