Mam problem z polskimi znakami (kodowaniem do utf-8) przy używaniu curl'a i domdocument'a przy parsowaniu innej strony. Próbowałem już wielu rozwiązań, m.in. php scraper'a z php.net, podmianą funkcjami kodujacymi itp. Gdy wyświetlam ściągnięte dane poprzez mb_detect_encoding(), część stringów jest faktycznie w utf-8, a część w ASCII. Męczę się już dłuższy czas, dlatego postanowiłem zaciągnąć rady u Was. Poniżej podaję kod (jest to ostatnia wersja z częścią próby poradzenia sobie z problem zaciągniętym na php.net, pominę ten moment):
$ch= curl_init(); curl_setopt ($ch, CURLOPT_URL, $url ); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch,CURLOPT_VERBOSE,1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_POST,0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 20); $html= curl_exec($ch); $html1= curl_getinfo($ch); /*tutaj część odpowiadająca za podmianę meta http-eqiv*/ $dom->preserveWhiteSpace = false; #pobieram wszystkie linki z odpowiednią klasą $elements = $dom->getElementsByTagName('a'); foreach ($elements as $element) { if ( !is_null( $element->getAttribute( 'class' )) && $element->getAttribute( 'class' ) == 'fn openPreview' ){ $all[] = $element->getAttribute('href'); } } } #kolejna próba zmiany kodowania <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">', $all[$i]); @$dom->loadHTMLFile( $html ); $xpath = new DOMXpath( $dom ); [...] } #i dalej wyciąganie danych z kolejnych linków
Za wszelkie podpowiedzi serdecznie dziękuje. Jeżeli czegoś brakuje w powyższym kodzie, chętnie ponownie dodam brakujące elementy.
Pozdrawiam.