Display error while retrieving content from HTML using Dom

when i get content from this link using dom: link here

I got this html content as follows:

<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>

although this link content is as follows:

 <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 mm 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>

I know that there is an error format here, but I cannot fix it. how can i fix this in php ?.

here is my code:

$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;

when i change the litle code:

echo utf8_decode($contents); 

he shows: Nh? cô nàng? ng ?? nh ?? t át ,? mm? c kiêu k? ggg ????????????????????????????????? m áp.

the date:

i fixed my result as follows: add

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

when get html uses curl. here is the function

 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;
    }
+4
source share
1 answer

use the meta tag on the html page.

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

Source: https://habr.com/ru/post/1534099/


All Articles