HTML DOM PARSER UTF-8

时间:2013-04-01 16:47:30

标签: php html utf-8 domparser

我有一个网站,但没有用UTF-8编码。我在另一个PHP中包含php文件。当我将编码更改为UTF-8时,所有字符都被破坏了。所以我不能使用标题(.. utf8 bla bla tag。

include_once 'includes/simple_html_dom.php';

$ozet = file_get_contents($url);
$html = str_get_html($ozet);
$trozet = $html->find('div[class="TEST"]',0)->plaintext;
$icerik = "";
$yazi = "<span>$trozet</span>";
$uzunluk = strlen($yazi);
$sinir = 155;
if ($uzunluk > $sinir) {
$icerik = substr($yazi,0,$sinir) . "...";
}

$content.= '<i><span>'.$icerik.'</span></i>';

return $content;

但它得到这样的HTML:

Pittsburgh kentinde sakin ve güneşli bir sabah, mesai saatinden hemen önce insanlar işlerine doğru koşturmakta, günlük telaşlarını yaşama...

应该是:

Pittsburgh kentinde sakin ve güneşli bir sabah, mesai saatinden hemen önce insanlar işlerine doğru koşturmakta, günlük telaşlarını...

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

到Substr utf-8字符串,你可以使用这样的函数:

function substrutf8($str,$from,$len){
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'. $from .'}'.'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'. $len .'}).*#s','$1', $str);}

答案 1 :(得分:0)

如果您不能使用UTF-8,则必须将其转换为其他编码:

$yazi = mb_convert_encoding("<span>$trozet</span>", "Windows-1250", "UTF-8");

请注意,并非每个网站都使用UTF-8,而且Windows-1250无论如何都只支持一小部分Unicode字符。