21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
zezula
Profil
Zdravím, mám tento kod a při parsovaní <title> z některých webů (viz třeba ahold.cz) špatně zobrazuje diakritiku. Zkoušel jsem i měnit kódování, ale bez výsledku. Kde je chyba? Díky za každou radu

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  <title>čeština</title>  
  </head>
  <body>    

<?php
function file_get_contents_curl($url)
{
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}

$html = file_get_contents_curl("http://ahold.cz/");

//parsing begins here:
$doc = new DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('title');

//get and display what you need:
$title = $nodes->item(0)->nodeValue;

$metas = $doc->getElementsByTagName('meta');

echo "Title: $title". '<br/><br/>';

?>

</body>
</head>
juriad
Profil
zezula:
Mně to funguje správně. Chybu tam nevidím. Stránku servíruješ jako UTF-8, ahold má také stránku v UTF-8, žádné konverze nejsou nutné.
Dan Charousek
Profil
zezula:
Zkus echo "Title: " . utf8_decode($title) . "<br/><br/>";
zezula
Profil
juriad:
nefungovalo mi to na lokálním serveru, po nahrátí na web už je to ok. Díky a omlouvám se za "zbytečné" téma

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0