Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/06/2010, 21:29
Mauro85
 
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!