Foros del Web » Programando para Internet » PHP »

comparando acentos y otras letras raras

Estas en el tema de comparando acentos y otras letras raras en el foro de PHP en Foros del Web. buenas a todos, me estoy volviendo loco y preciso ayuda! estoy utilizando la función file_get_contents para leer una página web y luego comparar si hay ...
  #1 (permalink)  
Antiguo 09/05/2011, 21:41
Avatar de marckd  
Fecha de Ingreso: febrero-2005
Ubicación: Uruguay
Mensajes: 511
Antigüedad: 19 años, 1 mes
Puntos: 11
Pregunta comparando acentos y otras letras raras

buenas a todos, me estoy volviendo loco y preciso ayuda!

estoy utilizando la función file_get_contents para leer una página web y luego comparar si hay un nombre allí dentro
con nombres sin acentos me funciona precioso, pero cuando el nombre tiene un acento o una letra rara, no me anda...
ejemplo de lo que no anda: Alšides

cuando hago un echo, me lo muestra bien, sin símbolos extraños
pero si comparo de la forma que compare, strstr, preg_match, substr_count, en ninguno me da como encontrado cuando tiene acentos

mis sospechas caen en que debe de estar leyendo a la "š" (por seguir el ejemplo" con alguna codificación que visualmente lo muestra bien, pero internamente para comparar no me funciona

mi pregunta es cómo puedo averiguar si mis sospechas son ciertas
y cómo puedo solucionarlo!! ya que me estoy volviendo loco, hace horas que estoy probando cosas y no encuentro nada :(

desde ya, muchas gracias
__________________
Tonterias
Trillonario
  #2 (permalink)  
Antiguo 09/05/2011, 21:50
Avatar de rikardoz  
Fecha de Ingreso: abril-2011
Ubicación: En mi casa
Mensajes: 165
Antigüedad: 12 años, 11 meses
Puntos: 46
Respuesta: comparando acentos y otras letras raras

Intenta imprimiento tu variable de resultado asi:
<?
echo htmlentities($resultado);

?>
__________________
Agregadecer no cuesta nada O SI?
  #3 (permalink)  
Antiguo 09/05/2011, 23:07
Avatar de AndresTorres  
Fecha de Ingreso: abril-2011
Ubicación: Capital Federal, ARG
Mensajes: 49
Antigüedad: 12 años, 11 meses
Puntos: 13
Respuesta: comparando acentos y otras letras raras

Código PHP:
<?php

$html 
= @file_get_contents$url ) ;

echo 
'<pre>';
var_dump$html );
echo 
'</pre>';

?>
Así podrás visualizar mejor el contenido que estás obteniendo...
  #4 (permalink)  
Antiguo 10/05/2011, 06:54
Avatar de marckd  
Fecha de Ingreso: febrero-2005
Ubicación: Uruguay
Mensajes: 511
Antigüedad: 19 años, 1 mes
Puntos: 11
Respuesta: comparando acentos y otras letras raras

gracias a ambos
y muy interesante lo del pre, no lo conocía

pero tengo una solución parcial :\

aplicando el pre, ahora puedo ver que lee desde la página a la "š" como "š"
y si comparo fijando la variable manualmente me funciona perfecto

pero mi programita debe de recibir el nombre a buscar desde un form por POST, y al parecer el htmlentities no cubre todos los caracteres

creo que preciso una fórmula que me convierta los caracteres especiales a su entidad html

conocen alguna totalmente completa?? las que he buscado carecen de justamente este ejemplo de la "š", y aunque puedo agregarlo a mano, prefiero no estar omitiendo ninguna por desconocimiento

gracias nuevamente
__________________
Tonterias
Trillonario
  #5 (permalink)  
Antiguo 10/05/2011, 07:44
Avatar de AndresTorres  
Fecha de Ingreso: abril-2011
Ubicación: Capital Federal, ARG
Mensajes: 49
Antigüedad: 12 años, 11 meses
Puntos: 13
Respuesta: comparando acentos y otras letras raras

html_entity_decode es la inversa de htmlentities, posiblemente te sirva de algo, desconosco el origen de ese caracter ._.

http://www.php.net/manual/en/function.html-entity-decode.php
  #6 (permalink)  
Antiguo 10/05/2011, 08:09
Avatar de marckd  
Fecha de Ingreso: febrero-2005
Ubicación: Uruguay
Mensajes: 511
Antigüedad: 19 años, 1 mes
Puntos: 11
Respuesta: comparando acentos y otras letras raras

gracias Andres, pero como dije, en el htmlentities no está incluído el convertir este tipo de caracteres, convierte otros, pero no este, por lo que la inversa tampoco me funciona

creo que preciso una función hecha a mano, no me importaría codificarla, pero quiero estar seguro de no omitir ninguno de los caracteres que pueden aparecer, pero no he encontrado una gran tabla que lo tenga

gracias
__________________
Tonterias
Trillonario
  #7 (permalink)  
Antiguo 10/05/2011, 08:34
Avatar de AndresTorres  
Fecha de Ingreso: abril-2011
Ubicación: Capital Federal, ARG
Mensajes: 49
Antigüedad: 12 años, 11 meses
Puntos: 13
Respuesta: comparando acentos y otras letras raras

Cita:
Iniciado por marckd Ver Mensaje
gracias Andres, pero como dije, en el htmlentities no está incluído el convertir este tipo de caracteres, convierte otros, pero no este, por lo que la inversa tampoco me funciona

creo que preciso una función hecha a mano, no me importaría codificarla, pero quiero estar seguro de no omitir ninguno de los caracteres que pueden aparecer, pero no he encontrado una gran tabla que lo tenga

gracias
Entiendo, my bad, lei mal, bueno si llegas a encontrar tal cosa o creas tu propia función compartirla que nunca está de más! Suerte
  #8 (permalink)  
Antiguo 10/05/2011, 09:04
Avatar de marckd  
Fecha de Ingreso: febrero-2005
Ubicación: Uruguay
Mensajes: 511
Antigüedad: 19 años, 1 mes
Puntos: 11
Respuesta: comparando acentos y otras letras raras

bueno, terminé encontrando una linda página que parecen ser unos cuantos, incluyendo el que buscaba

así me quedó la fórmula y me anda precioso

Código:
function limpiarURL($cadena) {
	$tildes = array('À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ','ÿ','Œ','œ','Š','š','Ÿ','ƒ');
	$vocales = array('À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ','ÿ','Œ','œ','Š','š','Ÿ','ƒ');
	$cadena = str_replace($tildes,$vocales,$cadena);

        return $cadena;
}
bue, forosdelweb me traduce los símbolos en código html, así que la fórmula no les sirve para nada... :D
a lo mejor por eso no encontraba nada
__________________
Tonterias
Trillonario
  #9 (permalink)  
Antiguo 10/05/2011, 10:58
Avatar de rikardoz  
Fecha de Ingreso: abril-2011
Ubicación: En mi casa
Mensajes: 165
Antigüedad: 12 años, 11 meses
Puntos: 46
Respuesta: comparando acentos y otras letras raras

en ese caso hubieras puesto
utf8encode a tus $resultados
o tambien utf8decode $resultados :D
lee sobre utf8enconde en php.net
__________________
Agregadecer no cuesta nada O SI?

Etiquetas: acentos, cadenas
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 15:57.