Foros del Web » Programando para Internet » PHP »

Hay alguna forma de reemplazar comillas dobles por espacio?

Estas en el tema de Hay alguna forma de reemplazar comillas dobles por espacio? en el foro de PHP en Foros del Web. debido a que mi parse de Urls se le cuela una comilla doble en una url de youtube envuelta con este formato @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 21/08/2012, 19:08
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Hay alguna forma de reemplazar comillas dobles por espacio?

debido a que mi parse de Urls se le cuela una comilla doble en una url de youtube envuelta con este formato

Código HTML:
Ver original
  1. <iframe width="420" height="315" src="http://www.youtube.com/embed/kjJKc3GRyKQ" frameborder="0" allowfullscreen></iframe>


necesito algo para reemplazar comillas doble por espacio.

La cosa es que el usuario puede insertar los links directamente en el textarea
links normales de este tipo http://www.youtube.com/watch?v=rWPzaNDC4_c&feature=g-logo-rec
y yo hago todo el parseo para que se muestre el video. sin embargo habra quienes crean que se puede poner directamente el codigo de compartir de youtube(el iframe)
y en ese caso no pone el video por que lo parsea mal, y es que se cuela una comilla doble.

eh intentado con str_replace('"',' ',cadena);

uso las simples para meter el caracter de comilla doble, pero no pasa nada.
tengo rato buscando como reemplazar ese caracter a la hora de mostrar el video, y tiene que ser en php.

Gracias :D
  #2 (permalink)  
Antiguo 21/08/2012, 19:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Hay alguna forma de reemplazar comillas dobles por espacio?

Tu solución ni siquiera es la ideal, en realidad tu expresión que captura los enlaces debería evitar dichas URLs que se encuentren entre comillas, es lo natural.

Si buscas reemplazar un carácter por mas sencillo que resulte puede acarrear mas problemas.

Lo correcto es que mejores dicha expresión, a saber.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/08/2012, 19:40
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Hay alguna forma de reemplazar comillas dobles por espacio?

Creo que el problema no es tanto que el usuario pueda colocar un iframe en el texto, lo realmente malo de esto es que no sabes qué cosa pueda poner dentro de ese iframe y supongo que también podrían incluir javascript, busca información acerca de ataques XSS

Debes buscar una alternativa para facilitar a tus usuarios integrar videos de youtube y que no comprometa la seguridad de tu sitio.
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 22/08/2012, 10:40
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: Hay alguna forma de reemplazar comillas dobles por espacio?

Cita:
Iniciado por Triby Ver Mensaje
Creo que el problema no es tanto que el usuario pueda colocar un iframe en el texto, lo realmente malo de esto es que no sabes qué cosa pueda poner dentro de ese iframe y supongo que también podrían incluir javascript, busca información acerca de ataques XSS

Debes buscar una alternativa para facilitar a tus usuarios integrar videos de youtube y que no comprometa la seguridad de tu sitio.
Bueno es que la intencion es que el usuario meta el enlace naturalmente como se hace en twitter
por ejemplo lo que eh logrado hasta ahora es que pueda meter estas urls
http://www.youtube.com/v/rd7V6A2bIIw http://www.youtube.com/watch?v=rd7V6A2bIIw&feature=context-gflo http://www.youtube.com/embed/rd7V6A2bIIw http://youtu.be/rd7V6A2bIIw
funciona bien. aunque tenga palabras en medio, siempre y cuand no tenga un enter entre cada url, aun nop resuelvo eso. solo me muestra unas cuantas urls si hay enter.

y bueno yo veo que en twitter si pones un iframe. ignora por completo el iframe.
solo toma la url que hay dentro de el.
eso si lo logro con javascripte en una seccion(que supuestamente es el mismo codigo que uso en la otra) pero ademas el chrome me muestra el resultado del iframe, osea si inserto un iframe, me muestra 2 videos, en el firefoz tambien., pero me muestra el iframe mas aparte los 2 videos.
esta raro. lo que trato de hacer es que no le importe el codigo html que este, si no que solo tome la url y ya. o que el texto sea texto plano, sin formatos. como hacer eso?

Ademas, es que yo hago una limpieza cuando meto datos a la base de datos con esto
Código PHP:
Ver original
  1. function cleanString($string)
  2. {
  3.     $string=trim($string);
  4.     $string=mysql_escape_string($string);
  5.     $string=htmlspecialchars($string);
  6.    
  7.     return $string;
  8. }

Hay algun otro metodo de limpieza?

y si he leido un poco de ataques xss, de hecho practique con mi web y descubri varias vulnerabilidades, pero de mysql, y bueno jejes les di una solucion, solo que se me hace que eso hace mas codigo, pero vale la pena XD

Última edición por minombreesmm; 22/08/2012 a las 10:59
  #5 (permalink)  
Antiguo 23/08/2012, 00:04
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: Hay alguna forma de reemplazar comillas dobles por espacio?

Y bueno ya tengo bien validada la entrada de datos.
osea
al leer las urls las puedo convertir a videos con php, excepto en una parte donde salen comillas dobles.
pero el detalle tambien es que a la hora de guardar, despues de guardar inserto un div con el video que el usuario inserto pero sin leer la base de datos, osea tambien convierto urls de video con javascript.
y ya lo logre, y de una forma mas simple.
solo con match, ni use expresiones regulares.

era mas facil de lo que crei.
sin embargo en el php, me sigue saliendo ese problema de comillas doble
eso ocurre cuando el usuario mete esto

Código HTML:
Ver original
  1. <iframe width="560" height="315" src="http://www.youtube.com/embed/rd7V6A2bIIw" frameborder="0" allowfullscreen></iframe>

yo no puedo evitar lo que el usuario escriba.
y lo que trato de hacer es interpretarlo

hago mi limpieza htmlitiems, htmlcharacters, y todo lo demas, creo que son dos mas.
creen que deba usar el html_tags?

Etiquetas: comillas, doble, reemplazar
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 02:20.