Foros del Web » Programando para Internet » PHP »

Problema con comillas dobles

Estas en el tema de Problema con comillas dobles en el foro de PHP en Foros del Web. Hola. Tengo un sistema para publicar noticias pero el problema es que cuando entro a la administración y escribo texto no puedo poner correctamente comillas ...
  #1 (permalink)  
Antiguo 13/06/2006, 12:16
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 20 años, 10 meses
Puntos: 1
Problema con comillas dobles

Hola. Tengo un sistema para publicar noticias pero el problema es que cuando entro a la administración y escribo texto no puedo poner correctamente comillas ("), ya que luego en el navegador donde debería aparecer (") aparece (\").

¿Porqué aparece una \?
¿Cómo se puede solucionar este problema?

Gracias!
  #2 (permalink)  
Antiguo 13/06/2006, 12:22
okram
Invitado
 
Mensajes: n/a
Puntos:
Esa barra aparece para poder escapar las comillas...

Imagina que deseas guardar esto en una cadena:

Foros del "Web" es lo mejor

pues tendrias que hacer

Código PHP:
 $str 'Foros del "Web" es lo mejor'
pero ahora queremos hacerlo con comillas dobles... Si colocas:
Código PHP:
$str "Foros del "Web" es lo mejor"
pues esto te mandara error (lo puiedes apreciar en el cambio de colores en el codigo), ya que los delimitadores que son las comillas son confundidios con las comillas que son parte del texto...

La forma correcta es entonces:
Código PHP:
 $str 'Foros del \"Web\" es lo mejor'
(observa los colores)

Para restaurar el texto tienes la funcion stripslashes()... SU correspondiente addslashes() sirve para agregar las comillas, y es ejecutada por defecto al enviar el formulario... Luego, para mostrar los datos deberas usar stripslashes($_POST['campo']);

Salu2
  #3 (permalink)  
Antiguo 14/06/2006, 09:42
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 20 años, 10 meses
Puntos: 1
Tendre que investigarlo a ver, pero gracias :)

¿Hay alguna otra manera mas sencilla?
  #4 (permalink)  
Antiguo 14/06/2006, 10:46
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 20 años, 10 meses
Puntos: 1
He probado a poner <?= stripslashes($video) ?> pero sigue sin funcionar, porque debe ser? Lo que ha de convertir son las comillas de un video de youtube:

<object width=\"425\" height=\"350\"><param name=\"movie\" value=\"http://www.youtube.com/v/xxx\"></param><embed src=\"http://www.youtube.com/v/xxx\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"350\"></embed>

Si edito el codigo youtube y lo guardo en mi servidor con las comillas normales si que funciona normalmente, viéndose el vídeo en la web
  #5 (permalink)  
Antiguo 14/06/2006, 17:31
okram
Invitado
 
Mensajes: n/a
Puntos:
Lo estoy probando y funciona:

http://www.okram.com.ar/images.php

EL codigo completo de la pagina es:
Código PHP:
<?php
$str
='<object width=\"425\" height=\"350\"><param name=\"movie\" value=\"http://www.youtube.com/v/xxx\"></param><embed src=\"http://www.youtube.com/v/xxx\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"350\"></embed>';
?>
Ejemplo:<br />
<?= stripslashes($str?>
No se porque a ti no te resulta....

en todo caso puedes crear una funcion que haga eso por el stripslashes, aunque sera bastante limitado...

Código PHP:
function quitarbarras(&$str) {
$str str_replace('\\"','"',$str);

y para llamar la funcion:

Código PHP:
quitarbarras($cadena);
echo 
$cadena
Salu2
  #6 (permalink)  
Antiguo 18/06/2006, 14:51
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 20 años, 10 meses
Puntos: 1
YA conseguí hacerlo funcionar, muchas gracias! :)
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:37.