Obtener código remoto con PHP

Una de las operaciones o tareas que se te presentan como programador es la necesidad de tener que acceder a otro servidor para ejecutar alguna función o código obteniendo algún resultado. Estamos hablando de la ejecución de código remoto.

Uno de los últimos casos de este tipo que he tenido que solucionar es la necesidad de que desde un módulo de Prestashop en una tienda de destino, por ejemplo: (http://destinationshop.com) se pueda hacer login como cliente a una tienda de otro dominio (http://www.myshop.com).

En la tienda de este dominio (http://www.myshop.com) tenemos un script que hace todo el proceso de login recibiendo como parámetros el email y contraseña y retorna mediante un echo un «ok» en caso de éxito o «nok» en el caso de no éxito.

Inicialmente conocí la función file_get_contents() que nos saca del paso perfectamente. Por ejemplo la puedes usar así:

$result = file_get_contents("http://www.myshop.com/script_login.php?email=demo@demo.com&password=demodemo");
echo $result;

Simplemente estamos llamando a una función ya desarrollada por PHP que lo que hace es acceder a esta ruta indicada ejecutando y recibiendo el resultado.

El inconveniente de esta función es que solo funciona si está habilitada en el servidor las directivas:

allow_url_fopen = On
allow_url_include = On

La inclusión y ejecución de archivos remotos no son muy seguros, por este motivo hay muchos servidores que la tienen desactivada estas directivas por seguridad. Es un problema añadido tener que solicitar la activación de esta directivas en cada servidor que se pretenda hacer funcionar.

Este problema se puede solucionar fácilmente con cURL, el programa bastante más seguro de Linux que permite realizar transferencias de archivos desde distintos protocolos.

El siguiente código ejecutaría lo mismo que file_get_contents() de forma más segura en cualquier servidor:

$ch = curl_init("http://www.myshop.com/script_login.php?email=demo@demo.com&password=demodemo");
$result = curl_exec ($ch);
curl_close ($ch);
Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(3 votos, promedio: 5 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

Una respuesta a “Obtener código remoto con PHP”

  1. Isco Alarcol dice:

    Te olvidas de decir que CURL no siempre esta disponible en los servidores compartidos.

    Un saludo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ver más sobre