使用Dom从HTML获取内容时显示错误

时间:2014-03-30 05:34:37

标签: php html

当我使用dom从此链接获取内容时: link here

我得到的内容是html如下:

<div align="justify"> “…Và  em muốn biết, nÆ¡i trái tim vẫn nhá»› thÆ°Æ¡ng âm thầm bao lâu nay /Sẽ mang đến cho mình Æ°á»›c mÆ¡ vá» hạnh phúc ấy /Hay là  ná»—i xót xa, có hay /Rằng tình yêu em luôn bao la /Rồi sẽ tá»›i má»™t ngà y anh chợt nhận ra , tình ta nhÆ° đóa hoa đợi khi nắng mai /Khi đôi môi lại rạng rỡ , tình ta chẳng phai nhòa…â€â€“ giai Ä‘iệu ngá»t ngà o của má»™t ca khúc vang lên trong chÆ°Æ¡ng trình radio Ä‘ang phát sóng là m cô chợt chạnh lòng. Má»™t cảm giác vừa quen vừa lạ nhen lên nÆ¡i trái tim. Cô cố gắng lục lại trí nhá»› của mình: 30 giây! 1 phút! 2 phút! Chợt, mắt cô thoáng buồn, cảm xúc trong trái tim cô nhÆ° vỡ òa khi tất cả nhÆ° má»™t cuốn phim chạy chậm trong trí nhá»› cùng má»› cảm xúc há»—n Ä‘á»™n: Dòng thá»i gian trở vá» trong cuốn phim là  những kỉ niệm cùng anh – chà ng sÄ© quan hải quân. </div>

虽然此链接内容如下:

 <div align="justify">1. Em không đẹp như các cô bạn gái trước đây của tôi. Em cũng không dịu dàng và nhìn tôi bằng ánh mắt trìu mến như họ. Em còn có một nhóc con đã ba tuổi, thằng bé dễ thương, kháu khỉnh và có đôi mắt buồn giống hệt mẹ. Em như một bông hoa dại cô độc, từng cánh hoa đơn trắng muốt, nhụy hoa vàng mềm mại, thân dài mảnh mai với những chiếc lá thanh mảnh, run rẩy nở trong gió nhưng không bao giờ cong gãy. Còn tôi, với đôi tay luôn được bao bọc trong lồng kính, lại tùy tiện ngắt hoa, không biết rằng trên đó có gai, cũng không hề biết rằng nó sẽ làm cho trái tim mình ứa máu. Đã hơn một lần tôi thổ lộ lòng mình với em nhưng đều nhận được ánh mắt lạnh lùng và lời từ chối phũ phàng:</div>

我知道这里有错误格式,但我无法修复它。我怎么能在PHP中解决这个问题?。

这是我的代码:

$link_mp3=$linkTemp.HadlingLink($html2->find('object#jwplayer param [name=flashvars]',0)->value);
//echo $link_mp3.'<br/>';

$arrayContents=$html2->find('div[align=justify]');
//var_dump($content);
$contents='';
foreach ($arrayContents as $content){
    $contents=$contents.$content->outertext;
}
echo $contents;

当我更改litle代码时:

echo utf8_decode($contents); 
它表明:恩? cônàng?? ng ?? nh,??tát,?m m?ckiêuk? ?? ng g?a an ch ch ch m ?a?ôngl?nhlùngvàanhchàngmùah? ?máp。

更新日期:

我修复了我的问题,如下所示:添加

CURLOPT_ENCODING => "UTF-8", // handle all encodings

使用curl获取html时。这是功能

 static function get_web_page($url)

    {


        $options = array(
            CURLOPT_RETURNTRANSFER => true, // return web page
            CURLOPT_HEADER => false, // don't return headers
            CURLOPT_FOLLOWLOCATION => true, // follow redirects
            CURLOPT_ENCODING => "UTF-8", // handle all encodings
            CURLOPT_USERAGENT => "spider", // who am i
            CURLOPT_AUTOREFERER => true, // set referer on redirect
            CURLOPT_CONNECTTIMEOUT => 200, // timeout on connect
            CURLOPT_TIMEOUT => 200, // timeout on response
            CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
        );

        $ch = curl_init($url);
        curl_setopt_array($ch, $options);
        $content = curl_exec($ch);
        $err = curl_errno($ch);
        $errmsg = curl_error($ch);
        $header = curl_getinfo($ch);
        curl_close($ch);

        $header['errno'] = $err;
        $header['errmsg'] = $errmsg;
        $header['content'] = $content;
        return $header;
    }

1 个答案:

答案 0 :(得分:0)

使用以下&#39; meta&#39;在你的HTML页面中标记。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />