strip_tags remove parse ejemplo domelement php character-encoding simple-html-dom

php - remove - Problema simple de codificación de caracteres html dom



remove html tags php (3)

Vaya al sitio web y verifique su juego de caracteres viendo la información de la página.

$text = iconv(mb_detect_encoding($text), "UTF-8//TRANSLIT//IGNORE", $text);

Hola chicos, estoy usando dom html simple para recuperar contenido de otro sitio web, pero la cuestión es que hay un problema de codificación de caracteres con las cosas recuperadas usando html dom simple. Los personajes se muestran como el pequeño diamante con el signo de interrogación dentro.

El problema de codificación de caracteres solo ocurre con el contenido recuperado, y el resto del texto de mi sitio se muestra bien.

Si alguien pudiera ayudar, sería genial.


Intenta usar iconv para convertir el juego de caracteres del texto recortado al juego de caracteres que usas en tu página.

Firma:

string iconv ( string $in_charset , string $out_charset , string $str )

Ejemplo:

echo iconv("ISO-8859-1", "UTF-8", $text);


También tuve este problema, pero no fue el problema del juego de caracteres. Fue la compresión de gzip lo que el html dom simple no maneja. Aquí está mi solución. Use la función file_get_html2 lugar file_get_html .

function curl($url){ $headers[] = "User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13"; $headers[] = "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; $headers[] = "Accept-Language:en-us,en;q=0.5"; $headers[] = "Accept-Encoding:gzip,deflate"; $headers[] = "Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7"; $headers[] = "Keep-Alive:115"; $headers[] = "Connection:keep-alive"; $headers[] = "Cache-Control:max-age=0"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_ENCODING, "gzip"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); $data = curl_exec($curl); curl_close($curl); return $data; } function file_get_html2($url){ return str_get_html(curl($url)); }