Foros del Web » Programando para Internet » PHP »

Problemas con acentos, caracteres especiales

Estas en el tema de Problemas con acentos, caracteres especiales en el foro de PHP en Foros del Web. Saludos a todos. En días pasado coloque un tema para saber si alguen por aquí había tratado de leer la pagina inicial de google new ...
  #1 (permalink)  
Antiguo 17/05/2010, 01:20
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Problemas con acentos, caracteres especiales

Saludos a todos.

En días pasado coloque un tema para saber si alguen por aquí había tratado de leer la pagina inicial de google new y extraer esa informacion en un ticker como titulares. Ya eso lo resolví.

Mi problema se centra ahora en que al abrir la direccion con fopen y vaciar el contenido en una tabla de mysql, cuando trato de leer la información, todo lo relacionado con los acentos y caracteres especiales me daña la salida.

leo de google así:

function carga_google()
{
include('config.php'); //abrir DB
$url="http://news.google.co.ve/news?edchanged=1&ned=es_ve"; // url de la pagina que queremos obtener

$url_content = '';$i=1;$yes=0;$ins='';
$file = fopen($url, 'r');
if($file){
while(!feof($file)) {
$url_content = fgets($file, 4096);
$linea =htmlentities($url_content);
$ins="insert into noti_google(id_noti_google,linea) values(null,'$linea')";
mysql_query($ins);
$i=$i+1;
}
fclose ($file);
} else { echo "<br> no encontro el url";}
}

Luego abro normalmente la base de datos y

while($rdat = mysql_fetch_assoc($rsel2))
{

$len=strlen($rdat['linea']);
$rdat['linea']=trim($rdat['linea']);
if ($len>20)
{$n= $n+1;
$pos=(strchr($rdat['linea'],"snippet"));
if ($pos)
{
$virgo=$rdat['linea'];
$rdat['linea']=str_replace("&quot;","TAG0001",$rdat['linea']);
$rdat['linea']=preg_replace("/a target=/","TAG0002",$rdat['linea']);
$rdat['linea']=preg_replace("/href=/","TAG0003",$rdat['linea']);
$rdat['linea']=str_replace("div class","TAG0004",$rdat['linea']);
$rdat['linea']=preg_replace("/snippet/","TAG0005",$rdat['linea']);
$rdat['linea']=preg_replace("/ id=/","TAG0006",$rdat['linea']);
$lineArray = explode("TAG0001",$rdat['linea']);

Luego manejo la informacion pero no me coloca los acentos y caracteres especiales como les comente...

Si alguien tiene una buena idea lo agradezco de antemano

Saludos
  #2 (permalink)  
Antiguo 17/05/2010, 10:13
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: Problemas con acentos, caracteres especiales

Encontre la solucion a este problemita... Y lo coloco aquí: 1) para que si les pasa lo mismo conozcan cómo debería resolverse y 2)para que alquien me explique porque ocurre esto... Saludos

1) Luego de leer el file de google-news que me intereso, comienzo a descomponer las etiquetas más o menos como coloqué. Donde encuentro los mensajes los despliego con un echo... pero como les comente me mostraba caracteres raros y no quería hacer la modificación de los acento...

Fijandome, recoriendo el string me doy cuenta que los acentos no vienen como :

á=&aacute;é=&eacute;í=&iacute;ó=&oacute; ú=&uacute;
Á=&Aacute;É=&Eacute;Í=&Iacute;Ó=&Oacute;Ú=&Uac ute;
ñ=&ntilde;Ñ=&Ntilde;

sino así:

á=&Atilde;&iexcl; é=&Atilde;&copy; í=&Atilde;­
ó=&Atilde;³ ú=&Atilde;&ordm; ñ=&Atilde;&plusmn;

2) Verifique y el html que estoy leyendo viene con:

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

y yo coloque en mi php:
header("Content-type: text/html; charset=utf-8");

Y no hace el cambio, por lo que aunq solucione el problema no sé porque viene así...

Espero que les sirva y si alguien me puede ayudar a entender que pasó lo agradecería...

Saludos

Etiquetas: acentos, caracteres, especiales
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:05.