Foros del Web » Programando para Internet » PHP »

Comillas de citación al rellenar un input con PHP

Estas en el tema de Comillas de citación al rellenar un input con PHP en el foro de PHP en Foros del Web. Buenas colegas! busqué sin éxito una solución y les planteo el problema a ver si me pueden ayudar! Gracias de antemano. Tengo un formulario que ...
  #1 (permalink)  
Antiguo 09/06/2010, 21:29
 
Fecha de Ingreso: junio-2010
Mensajes: 12
Antigüedad: 13 años, 10 meses
Puntos: 0
Comillas de citación al rellenar un input con PHP

Buenas colegas! busqué sin éxito una solución y les planteo el problema a ver si me pueden ayudar! Gracias de antemano.

Tengo un formulario que se envía con método POST en el cual se ingresan noticias. Cuando copias del Word y pegas en el input text o textarea un texto con comillas, las mismas son diferentes a las comunes, noten la diferencia:

Texto escrito directamente en el input: "El Retrato Postergado". <-comillas comunes
Texto cortado y pegado en el input: “El Retrato Postergado”. <-comillas de citación

El documento php tiene la meta tag http-equiv="Content-Type" content="text/html; charset=utf-8". La base de datos y todas las tablas están en utf8.

En la base de datos las comillas de citación se almacenan con el formato “El Retrato Postergadoâ€.

Luego a la hora de modificar una noticia expongo el formulario rellenado, de la siguiente manera:
<textarea name="noticia" cols="40" rows="10" class="obligatorio">'.<?php echo htmlentities(utf8_decode($noticia->getNoticia()); ?>.'</textarea>

Si le saco el htmlentities me muestra las comillas de citación con símbolos raros, si le saco el utf8_decode me muestra las comillas de citación con otros símbolos raros, y si dejo ambas, me muestra un signo de pregunta en vez de las comillas de citación.

He intentado hacer lo siguiente: Al cargar una nueva noticia, reemplazar las apariciones de las comillas de citación por las comunes de la siguiente manera:

function reemplazarComillasCitacion($texto){
$original[] = '“';
$replace[] = '"';
$rta = str_replace($original, $replace, $texto);
return $rta;
}
$nuevaCadena = reemplazarComillasCitacion($_POST["noticia"]);

pero no hace ningún reemplazo...


Por el contrario si yo llamo a la función de la siguiente manera:

$nuevaCadena = reemplazarComillasCitacion("Texto “con“ comillas");

Me reemplaza bien.

Alguien tiene idea de por qué sucede esto?
Muchas gracias nuevamente, espero puedan tirar ideas. Hasta luego!
  #2 (permalink)  
Antiguo 09/06/2010, 21:47
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Comillas de citación al rellenar un input con PHP

Prueba esto:
Código PHP:
$prueba "“El Retrato Postergadoâ€.";
echo 
str_replace(array("“","â€"),'"',$prueba); 
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 09/06/2010, 21:51
 
Fecha de Ingreso: diciembre-2009
Mensajes: 19
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Comillas de citación al rellenar un input con PHP

¿Una cadena en especifico con la que estés probando?
  #4 (permalink)  
Antiguo 18/06/2010, 17:20
 
Fecha de Ingreso: junio-2010
Mensajes: 12
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Comillas de citación al rellenar un input con PHP

Cita:
Iniciado por Marvin Ver Mensaje
Prueba esto:
Código PHP:
$prueba "“El Retrato Postergadoâ€.";
echo 
str_replace(array("“","â€"),'"',$prueba); 
Suerte!

Muchisimas graciass!!!! me funcionó!
  #5 (permalink)  
Antiguo 18/06/2010, 18:13
 
Fecha de Ingreso: junio-2010
Mensajes: 12
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Comillas de citación al rellenar un input con PHP

Me reemplaza bien las comillas,pero ahora me queda el rombo con signo de pregunta al final de la comilla de cierre :S...

En la base de datos me fijo y no se vé ningún caracter raro, pero cuando intento borrar la comilla de cierre (desde la base de datos)...la primera vez q aprieto backspace no la borra, es como si hubiera un caracter invisible!...e éste es el que html interpreta como desconocido y pone el rombo negro...

Qué será?
  #6 (permalink)  
Antiguo 20/06/2010, 22:25
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Comillas de citación al rellenar un input con PHP

Saca un print de ese dato, guardalo en un txt y luego abrelo con un editor hexadecimal para ver que caracter es el extraño....

Por lo general hay algunos programas que aun utilizan caracteres raros o con codificaciones fuera de estandar...

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!

Etiquetas: citacion, codificacion, comillas, reemplazar, string
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 20:52.