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.
https://panchito-kardashian.tar.mx/media/2019/11/curl_php.png