Foros del Web » Programando para Internet » PHP »

Problema con escape de comillas en una funcion

Estas en el tema de Problema con escape de comillas en una funcion en el foro de PHP en Foros del Web. Bueno... pues parecerá tonto, pero llevo ya un par de horas dandole vueltas y na de na. Estoy utilizando la libreria Curl para obtener datos ...
  #1 (permalink)  
Antiguo 05/02/2010, 14:42
 
Fecha de Ingreso: febrero-2009
Mensajes: 20
Antigüedad: 15 años, 2 meses
Puntos: 0
Problema con escape de comillas en una funcion

Bueno... pues parecerá tonto, pero llevo ya un par de horas dandole vueltas y na de na.

Estoy utilizando la libreria Curl para obtener datos de otras web, en concreo de la wikipedia. Este es mi código para que se vea claro:

Código:
    $direccion ="http://es.wikipedia.org/wiki/'".$nombre."'"; 

	$curl = curl_init();
    curl_setopt ($curl, CURLOPT_URL, $direccion);
    curl_exec ($curl);
   curl_close ($curl);

Pongamos que la variable nombre contiene "pepito". Pues bien, lo que me devuelve es el contenido de :

http://es.wikipedia.org/wiki/'pepito' que obviamente no es nada, y lo que quiero es recoger la url http://es.wikipedia.org/wiki/pepito

Si le quito la comilla simple, me devuelve como resultado Resource id #5 , no da error, pero tampoco coge contenido de ninguna pagina.

Alguna idea o solucion. El problema parece ir por que la funcion

curl_setopt ($curl, CURLOPT_URL, $direccion); en el tercer parámetros necesita
ir con "" , pero claro, al meter este dato por variable, como que no encuentro manera de hacerlo.

Un saludo.
  #2 (permalink)  
Antiguo 05/02/2010, 18:22
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema con escape de comillas en una funcion

2 opciones:

Código code:
Ver original
  1. $direccion ='http://es.wikipedia.org/wiki/"'.$nombre.'"';
  2.  
  3.  $direccion ="http://es.wikipedia.org/wiki/\"".$nombre."\"";
  #3 (permalink)  
Antiguo 05/02/2010, 18:30
Avatar de jolie_girl  
Fecha de Ingreso: agosto-2008
Ubicación: mexico
Mensajes: 346
Antigüedad: 15 años, 8 meses
Puntos: 10
Exclamación Respuesta: Problema con escape de comillas en una funcion

deberia funcionar asi



$direccion ="http://es.wikipedia.org/wiki/".$nombre;


pero probar antes isset get a $nombre

hope it helps
__________________
Solicito colaboradoras para proyecto social media largo plazo. Manda mp
  #4 (permalink)  
Antiguo 05/02/2010, 19:17
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 9 meses
Puntos: 66
Respuesta: Problema con escape de comillas en una funcion

Si no te funciona lo anterior prueba a meter la variable dentro de las comillas.

$direccion ="http://es.wikipedia.org/wiki/$nombre";

Saludos
  #5 (permalink)  
Antiguo 07/02/2010, 09:14
 
Fecha de Ingreso: febrero-2009
Mensajes: 20
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con escape de comillas en una funcion

Cita:
Iniciado por jolie_girl Ver Mensaje
deberia funcionar asi



$direccion ="http://es.wikipedia.org/wiki/".$nombre;


pero probar antes isset get a $nombre

hope it helps

mmm, jolie, no entiendo a que te refieres con probar con isset get a $nombre. Si me pudieras aclarar te lo agradezo.

Gracias a todos por vuestras respuestas pero sigo en las mismas :__( , ya había probado esas combinaciones y na de ná. O bien me devuelve Resource id #5 o bien intenta coger el contenido de la url http://es.wikipedia.org/wiki/"contenidodenombre" . Es decir, con las comillas incluidas en la url .
  #6 (permalink)  
Antiguo 07/02/2010, 09:46
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 9 meses
Puntos: 66
Respuesta: Problema con escape de comillas en una funcion

Prueba esto a ver que pasa:

Código PHP:
<?php
$direccion
=sprintf("http://es.wikipedia.org/wiki/ %s"get_magic_quotes_gpc() ? $nombre addslashes($nombre));
?>
Saludos

Última edición por santris; 07/02/2010 a las 10:04
  #7 (permalink)  
Antiguo 07/02/2010, 10:06
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 9 meses
Puntos: 66
Respuesta: Problema con escape de comillas en una funcion

Lo he probado y funciona,

Código PHP:
<?php
$nombre
="Raza_de_perro";
$direccion=sprintf("http://es.wikipedia.org/wiki/%s"get_magic_quotes_gpc() ? $nombre addslashes($nombre));

$curl curl_init();
curl_setopt ($curlCURLOPT_URL$direccion);
curl_exec ($curl);
curl_close ($curl);
echo 
$curl;
?>
verlo en http://www.linkalis.com/lib/ver_wiki.php

Última edición por santris; 07/02/2010 a las 10:11
  #8 (permalink)  
Antiguo 08/02/2010, 06:38
 
Fecha de Ingreso: febrero-2009
Mensajes: 20
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con escape de comillas en una funcion

Que raro macho. Veo que te va de perlas, pero nada eh. Pongo tu código y me sigue saliendo lo mismo de Resource id #5

Investigaré a ver por donde tengo el fallo.
  #9 (permalink)  
Antiguo 08/02/2010, 10:59
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 9 meses
Puntos: 66
Respuesta: Problema con escape de comillas en una funcion

Pregunta en el proveedor del server si te tiene habilitado curl,

Saludos.
  #10 (permalink)  
Antiguo 08/02/2010, 11:08
 
Fecha de Ingreso: febrero-2009
Mensajes: 20
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con escape de comillas en una funcion

Despues de dar mil vueltas y probar mil cosas. El código que me ha funcionado es éste:

Código:
	$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $direccion);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$resultado = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
Aqui ya no da problema para escapar comillas de cualquiera de las formas arriba comentadas.

Saludos. Y gracias a todos.

Etiquetas: curl, funciones, variables
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 23:11.