Foros del Web » Programando para Internet » PHP »

Sacar las variables con curl

Estas en el tema de Sacar las variables con curl en el foro de PHP en Foros del Web. Hola a todos; tengo un archivo php en un servidor remoto y quiero leer las variables de ese archivo en un hosting compartido. Este hosting ...
  #1 (permalink)  
Antiguo 16/11/2011, 09:42
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Sacar las variables con curl

Hola a todos;
tengo un archivo php en un servidor remoto y quiero leer las variables de ese archivo en un hosting compartido. Este hosting no tiene habilitado allow_url_include con lo cual no puedo usar include.
Me han dicho que con curl si puedo leer esta info. el documento del servidor remoto es este.
Código PHP:
<?php
$dsn_rafal 
"rafal";
$usuario_rafal "usuario";
$clave_rafal ="pass";


$connection_rafal=odbc_connect($dsn_rafal$usuario_rafal$clave_rafal);
$query_rafal ="SELECT * from  Links where CodiLink = 'LIN2' ";
$result_rafal=odbc_exec($connection_rafal,$query_rafal);


while(
$row_rafal odbc_fetch_array($result_rafal)){

$rafal=$row_rafal['ValorJackpotCheckpoint'];

}
//echo "<br>". $rafal;



$query_rafal1 ="SELECT * from  Links where CodiLink = 'LIN3' ";
$result_rafal1=odbc_exec($connection_rafal,$query_rafal1);


while(
$row_rafal1 odbc_fetch_array($result_rafal1)){

$rafal1=$row_rafal1['ValorJackpotCheckpoint'];

}
//echo "<br>". $rafal1;

odbc_close($connection_rafal); 



?>
y necesitaria imprimir las variables en un archivo php del servidor compartidoi.

Gracias
  #2 (permalink)  
Antiguo 16/11/2011, 10:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Sacar las variables con curl

Eso es un poco imposible de hacer sin comprometer tu sistema. Si aún así lo quieres hacer, tendrías que cambiar la extensión del archivo PHP remoto a .inc, o algo similar (usa alguna extensión que no procese el servidor como script PHP).

Después haces la petición con cURL hacía ese script, descargas todo el texto, y por último lo pasas por eval() para evaluar el código, así ya tendrías las variables.

Aqui te dejo un link para que aprendas como usar cURL:
http://www.forosdelweb.com/f18/aport...equest-724214/

Saludos.
  #3 (permalink)  
Antiguo 16/11/2011, 10:18
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Sacar las variables con curl

Gracias Gator, no e importa comprometer el sistema, ya que solo está ese archivo en el servidor, ademas las conexiones se hacen por ODBC y el usuario y contraseña son de lectura.

Gracias, miro a ver si me sirve.
  #4 (permalink)  
Antiguo 16/11/2011, 11:13
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Sacar las variables con curl

No consigo ver el contenido del archivo.
He cambiado la extension a .inc y he probado con varios comandos de curl y me sale la pagina en blanco

Cual seria el comando para ver el contenido del archivo .inc y cager las variables?

Un saludo y gracias
  #5 (permalink)  
Antiguo 16/11/2011, 11:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Sacar las variables con curl

¿Como lo haz intentado? Si ves el link que te deje es algo muy sencillo de obtener. Ya que tengas el contenido de la pagina en una variable lo pasas por eval.

Saludos.
  #6 (permalink)  
Antiguo 16/11/2011, 13:06
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Sacar las variables con curl

he probado con
Código PHP:
1.<?php2.$c curl_init('http://www.example.com/algo.txt');3.curl_setopt($cCURLOPT_RETURNTRANSFERtrue);4.$page curl_exec($c);5.curl_close($c);6.echo $page;7.?>
y me da pantalla en blanco

Código PHP:
<?php
$url 
'http://www.example.com/submit.php';
$body 'FDW=programacion&PHP=f18';
$c curl_init($url);
curl_setopt($cCURLOPT_POSTtrue);
curl_setopt($cCURLOPT_POSTFIELDS$body);
curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
$page curl_exec($c);
curl_close($c);
echo 
$page;
?>
Y pagina en blanco tambien.
Pero si pongo el link en el navegador, si me muestra los datos.
Otra cosa que no habia pensado es que este archivo hace una consulta a un servidor, con lo cual si le cambio el formato, cada vez que la consulte no me actualizará los datos.

alguna orinentacion de como hacer esto?
  #7 (permalink)  
Antiguo 16/11/2011, 13:17
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Sacar las variables con curl

He conseguido que cada vez que se llame a la pagina remota, me cree un archivo txt que me actualiza los datos.
Ahora tengo 2 problemas.
1 llamar a la pagina para que me me actualice el archivo txt.
2 conseguir leer el archivo txt.

Necesito ayuda.

Gracias
  #8 (permalink)  
Antiguo 16/11/2011, 13:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Sacar las variables con curl

Como te digo debes de quitar la extensión php, ya que si no el servidor va a evaluar el script y te dara el resultado, si tu lo que quieres son las variables en tu script local tienes que ponerle otra extensión que no sea procesada por el servidor.

No vas a poder hacer consultas al servidor dentro de ese PHP ya que se va a ejecutar en el servidor destino donde uses el eval().

Para hacer lo que quieres que tengas logica en el servidor y aparte hacer el request necesitas hacer uso de WebServices para poder establecer una llamada entre ambos servidores.

Saludos.
  #9 (permalink)  
Antiguo 16/11/2011, 13:40
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Sacar las variables con curl

Hola Gator.
Tengo alojado la web en Arsys y me dicen que allow_url_include esta desactivado por seguridad.

El php lo tengo en un server 2003 corriendo con XAMPP.

Pero necesito que ese archivo sea un PHP, ya que hace consultas a 4 SQL que estan en 4 equipos dentro de la red.
Localmente me funciona y veo los datos.
Lo que he echo es que cada vez que se ejecute ese archivo, me actualice un txt con los datos separado por comas, si abro ese archivo txt veo que los datos se insertan correctamente.

Mi pregunta es?

1 Como actualizo el php que me actualiza el txt
2 como leo ese txt en la pagina que tengo en el servidor de ARSYS.

Se puede hacer esto para seguir investigando?

Gracias Gator por contestar
  #10 (permalink)  
Antiguo 16/11/2011, 14:27
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Sacar las variables con curl

Ahora consigo imprimir los datos dentro del archivo php

Código PHP:
$c curl_init ("http://ip_publica/3.php");
curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
$page curl_exec($c);
curl_close($c);
echo 
$page
me da estos datos.

383.4672
230.2320
294.6256
354.0992
225.2608
290.3264
448.0400
300.6064

Que son correctos

Ahora me falta poder capturar estos datos y meterlos en variables.
  #11 (permalink)  
Antiguo 16/11/2011, 14:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Sacar las variables con curl

Pues podrías hacer varias cosas, la primera es hacer un request usando cURL al script que actualiza el txt, una vez que este lo haya actualizado haces otro request usando cURL al archivo con los datos en txt para leerlo.

Un ejemplo sencillo para usar cURL:
Código PHP:
Ver original
  1. $ch = curl_init("http://www.google.com/");
  2. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  3. curl_setopt($ch, CURLOPT_HEADER, 0);
  4.  
  5. $google = curl_exec($ch);
  6.  
  7. var_dump($google);

Saludos.
  #12 (permalink)  
Antiguo 16/11/2011, 14:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Sacar las variables con curl

Ah pues ya que los tienes, puedes usar explode() para separarlos por cada new line y los tendrías en un array:
Código PHP:
Ver original
  1. $datos = explode('\n', $response);
  2. var_dump($datos);

Saludos.
  #13 (permalink)  
Antiguo 16/11/2011, 15:17
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Sacar las variables con curl

Perdona mi ignorancia Gator.
Ahora imprimo los resultados con esto.

Código PHP:
$c curl_init ("http://ip_publica/3.php");
curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
$page curl_exec($c);
curl_close($c);

$arr = array("$page");

//reset($arr);

foreach ($arr as $value) {
    
    echo 
"Valor: $value<br />\n";

Pero no se como separar las lineas para que cada liena sea una variable.

Gracias de nuevo por tu ayuda
  #14 (permalink)  
Antiguo 16/11/2011, 15:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Sacar las variables con curl

Usa explode como te indique, eso ya te transforma la variable en un array.

Saludos.
  #15 (permalink)  
Antiguo 16/11/2011, 16:15
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Sacar las variables con curl

Pero no sale nada.

Código PHP:
$c curl_init ("http://ip_publica/3.php");
curl_setopt($cCURLOPT_RETURNTRANSFERtrue);
$page curl_exec($c);
curl_close($c);

$valor"$page";
$lineas explode("\n",$valor);

echo 
$lineas[2]; 
Pero no me sale nada.
lo que quiero hacer es acceder a cada linea con una variable.
Por ejemplo echo $datos[2]; imprimiria a la linea 2.

Esto es por que necesito imprimir los datos en diferentes sitios de la web.

Un saludo y nuevamente gracias

Última edición por visona; 16/11/2011 a las 16:26
  #16 (permalink)  
Antiguo 16/11/2011, 16:32
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Sacar las variables con curl

Solucionado, el problema estaba que en el remoto tenia puesto < BR > y se ve que no pillaba el salo de linea, lo he cambiado por una , y listo.

Muchas gracias Gator por tu ayuda, es muy grato que le orienten.

Un saludo
  #17 (permalink)  
Antiguo 16/11/2011, 16:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Sacar las variables con curl

En tu txt intenta separarlos de alguna otra forma, por ejemplo separa cada dato con un | y así esa linea se la puedes pasar al explode.

Por otro lado:
Código PHP:
Ver original
  1. $valor= "$page";
  2. $lineas = explode("\n",$valor);

Eso no es necesario, puedes pasar $page directamente a explode.

Saludos.

Etiquetas: curl, variables, usuarios
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 08:35.