En ocasiones queremos consumir datos de un webservice mediante PHP, por lo que es necesario generar peticiones desde un script hacia otro ya sea en nuestro mismo servidor o en uno remoto, vamos a poner un ejemplo, donde consumos datos por medio de GET, en este caso nos va a devolver un archivo JSON.
<?php
// get curl @toro
$datos = [
"api" => "eco",
"var1"=> "uno",
"var2"=> "dos",
];
$metodo = "GET"; //cambiar a "POST" en caso de que sea post
$url = "https://tar.mx/apps/eco/?";
$ch = curl_init();
if($metodo == 'GET') {
curl_setopt($ch,CURLOPT_URL,$url.http_build_query($datos));
} else {
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($datos));
}
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$tmp = curl_exec($ch);
$k = json_decode($tmp);
curl_close($ch);
print_r($k);
Con lo cual, nos devolvería algo como lo siguiente:
stdClass Object
(
[msg] => Hola, son las 12:42 por aquí :-)
[get] => stdClass Object
(
[api] => eco
[var1] => uno
[var2] => dos
)
[post] => Array
(
)
)
Eso es todo, si quisiéramos enviar los datos por POST sólo cambiamos la variable $metodo. En cualquier caso, esta es la forma más simple de enviar y recibir datos, en el ejemplo es un JSON pero podría ser un XML o el dato que devuelva el webservice y los datos que estamos enviando son como los que llenamos en un formulario.
Aquí tambien hay un ejemplo de como enviar un archivo al sevidor con PHP y CURL.