Foros del Web » Programando para Internet » PHP »

problemas con comillas dobles y simples

Estas en el tema de problemas con comillas dobles y simples en el foro de PHP en Foros del Web. hola esto intentando remplazar caractectes especiales por sus entidades html, pero no lo logro. recibo el valor de un campo de un formulario y uso ...
  #1 (permalink)  
Antiguo 07/02/2010, 15:12
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
problemas con comillas dobles y simples

hola

esto intentando remplazar caractectes especiales por sus entidades html, pero no lo logro.

recibo el valor de un campo de un formulario y uso las funciones htmlentities o htmlspecialchars.

este es el valor: I'll play with "you"

en ambos casos imprime

echo Trim(htmlentities($_POST["campo"]),ENT_QUOTES); // I\'ll play with \"you\"
echo Trim(htmlspecialchars($_POST["campo"])); // I\'ll play with \"you\"

cuando debería de imprimir: I& #39;ll play with & quot;you& quot;

¿cuál es el problema?

gracias
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #2 (permalink)  
Antiguo 07/02/2010, 17:34
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años
Puntos: 7
Respuesta: problemas con comillas dobles y simples

bueno. tendrias que usar la funcion str_replace() o usar expresiones regulares.

Código PHP:
Ver original
  1. $campo = "I'll play with \"you\"";
  2.  
  3. $r = str_replace('','"',$campo);
  4.  
  5. echo $r;

aqui hay un aporte de COMO: usar las comillas bien

saludos.
  #3 (permalink)  
Antiguo 08/02/2010, 07:02
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: problemas con comillas dobles y simples

gracias por el código, pero ya lo comprebé antes de postear. al no resultar las funciones htmlentities o htmlspecialchars, use tanto str_replace como preg_replace y en ambos casos el resultado fue el mismo que el que expuse en el anterior post.
en cuanto a la liga, es útil tenerla pero con ello no se resuelve el problema ya que el problema estriba en cuando recojo la cadena enviada por $_POST o $_GET, no cuando le doy valor a una variable, como es el caso que expones

¿alguna idea?

gracias
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #4 (permalink)  
Antiguo 08/02/2010, 09:06
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años
Puntos: 7
Respuesta: problemas con comillas dobles y simples

aya. entiendo. osea tu quieres mostrar de esa manera.

I& #39;ll play with & quot;you& quot;

bueno. alli tendrias que usar expresiones regulares y reempalzar las comillas por &nbr. eso es lo que entendi tu consulta.

aqui hay un aporte de como usar expresiones regulares.

saludos.
  #5 (permalink)  
Antiguo 08/02/2010, 09:10
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: problemas con comillas dobles y simples

Estas cerrando el htmlentities antes de usar ENT_QUOTES. Fijate como lo estas haciendo.
Código PHP:
Ver original
  1. echo Trim(htmlentities($_POST["campo"]),ENT_QUOTES)
Estas usando ENT_QUOTES en el trim no en el htmlentities.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 09/02/2010, 05:58
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: problemas con comillas dobles y simples

hola a ambos

@esaenz22, la verdad es que no quisiera complicarlo tanto
@abimaelrc, tienes toda la razón, pero ha sido solo un error al escribir el código en este hilo.

el problema está, en que escapa los caracteres sin más, yo vengo de ASP y .NET y no estoy acostumbrada a ese comportamiento. es decir se agrega la barra invertida, de tal modo que si me voy al código fuente, esto es lo que imprime

echo Trim(htmlentities($_POST["campo"],ENT_QUOTES)); // I\'ll play with \"you\"
echo Trim(html_entity_decode($_POST["campo"])); // I\'ll play with \"you\"

¿alguna otra idea?
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #7 (permalink)  
Antiguo 09/02/2010, 07:13
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: problemas con comillas dobles y simples

Puede ser que tengas habilitado en tu php.ini magic_quotes_gpc, desabilitalo (es lo recomendable). Me dejas saber. Si no es eso de que tengas habilitado lo que te indique en el php.ini, estarás usando alguna función, como por ejemplo mysql_real_escape_string o addslashes. También puedes usar la función stripslashes para quitar esas barras invertidas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 10/02/2010, 07:49
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: problemas con comillas dobles y simples

magic_quotes_gpc lo tenía activado, lo deshabilité y problema resuelto.

muchisimas gracias
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: comillas, dobles, simples
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 17:09.