lib example ejemplos curl_init curl_exec php curl

example - php curl post json



¿Qué es cURL en PHP? (9)

En PHP, veo la palabra cURL en muchos proyectos de PHP. ¿Qué es? ¿Como funciona?

Enlace de referencia: ( ¿Qué es cURL en PHP? )


rizo

  • cURL es una forma en la que puede golpear una URL desde su código para obtener una respuesta HTML.
  • Se usa para la línea de comandos cURL del lenguaje PHP.
  • cURL es una biblioteca que te permite realizar solicitudes HTTP en PHP.

PHP es compatible con libcurl, una biblioteca creada por Daniel Stenberg, que le permite conectarse y comunicarse con muchos tipos diferentes de servidores con diferentes tipos de protocolos. libcurl actualmente admite los protocolos http, https, ftp, gopher, telnet, dict, file y ldap. libcurl también admite certificados HTTPS, HTTP POST, HTTP PUT, carga de FTP (esto también se puede hacer con la extensión ftp de PHP), carga basada en formularios HTTP, proxies, cookies y autenticación de usuario y contraseña.

Una vez que haya compilado PHP con soporte de cURL, puede comenzar a usar las funciones de cURL. La idea básica detrás de las funciones de cURL es que inicializa una sesión de cURL utilizando curl_init (), luego puede configurar todas sus opciones para la transferencia a través de curl_setopt (), luego puede ejecutar la sesión con curl_exec () y luego termina tu sesión usando curl_close ().

Código de muestra

// error reporting error_reporting(E_ALL); ini_set("display_errors", 1); //setting url $url = ''http://example.com/api''; //data $data = array("message" => "Hello World!!!"); try { $ch = curl_init($url); $data_string = json_encode($data); if (FALSE === $ch) throw new Exception(''failed to initialize''); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array( ''Content-Type: application/json'', ''Content-Length: '' . strlen($data_string))); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); $output = curl_exec($ch); if (FALSE === $output) throw new Exception(curl_error($ch), curl_errno($ch)); // ...process $output now } catch(Exception $e) { trigger_error(sprintf( ''Curl failed with error #%d: %s'', $e->getCode(), $e->getMessage()), E_USER_ERROR); }

Para más información, por favor revise -


CURL en PHP:

Resumen:

El comando curl_exec en PHP es un puente para usar curl desde la consola. curl_exec hace que sea fácil y rápido hacer solicitudes GET / POST, recibir respuestas de otros servidores como JSON y descargar archivos.

Advertencia, peligro:

curl es malo y peligroso si se usa incorrectamente porque se trata de obtener datos de Internet. Alguien puede interponerse entre su bucle y el otro servidor e inyectar un rm -rf / en su respuesta, y entonces, ¿por qué me dejan caer en una consola y ls -l ya no funciona? Porque subestimaste el peligroso poder del rizo. No confíe en que todo lo que viene de curl sea seguro, incluso si está hablando con sus propios servidores. Podrías estar retirando el malware para liberar a los tontos de su riqueza.

Ejemplos:

Estos fueron hechos en Ubuntu 12.10

  1. Curl básico desde la línea de comandos:

    el@apollo:/home/el$ curl http://i.imgur.com/4rBHtSm.gif > mycat.gif % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 492k 100 492k 0 0 1077k 0 --:--:-- --:--:-- --:--:-- 1240k

    Entonces puedes abrir tu gif en firefox:

    firefox mycat.gif

    Gatos gloriosos que desarrollan Toxoplasma gondii para hacer que las mujeres mantengan a los gatos cerca y los hombres también a las mujeres.

  2. Ejemplo de cURL: obtener solicitud para ir a google.com, hacer eco en la línea de comandos:

    Esto se hace a través del terminal phpsh:

    php> $ch = curl_init(); php> curl_setopt($ch, CURLOPT_URL, ''http://www.google.com''); php> curl_exec($ch);

    Que imprime y vuelca un lío de html y javascript condensado (de google) en la consola.

  3. El ejemplo de cURL pone el texto de respuesta en una variable:

    Esto se hace a través del terminal phpsh:

    php> $ch = curl_init(); php> curl_setopt($ch, CURLOPT_URL, ''http://i.imgur.com/wtQ6yZR.gif''); php> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); php> $contents = curl_exec($ch); php> echo $contents;

    La variable ahora contiene el binario que es un gif animado de un gato, las posibilidades son infinitas.

  4. Hacer un curl desde dentro de un archivo PHP:

    Ponga este código en un archivo llamado myphp.php:

    <?php $curl_handle=curl_init(); curl_setopt($curl_handle,CURLOPT_URL,''http://www.google.com''); curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2); curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1); $buffer = curl_exec($curl_handle); curl_close($curl_handle); if (empty($buffer)){ print "Nothing returned from url.<p>"; } else{ print $buffer; } ?>

    Luego ejecútalo a través de la línea de comandos:

    php < myphp.php

    Ejecutó myphp.php y ejecutó esos comandos a través del intérprete php y descargó una tonelada de html y javascript en la pantalla.

    Puede hacer solicitudes GET y POST con curl, todo lo que debe hacer es especificar los parámetros como se define aquí: http://curl.haxx.se/docs/httpscripting.html#POST

Recordatorio de peligro:

Tenga cuidado al descartar la salida del rizo, si cualquiera de ellos se interpreta y ejecuta, su caja es propiedad y la información de su tarjeta de crédito se venderá a terceros y obtendrá un misterioso cargo de $ 900 de una empresa de pisos de Alabama para un solo hombre que es un Frente a la red de tarjetas de crédito en el extranjero.


Curl no es más que una extensión de PHP que hereda los comportamientos del comando y la biblioteca normales de curl escritos principalmente para la herramienta de línea de comandos Linux / Unix

Que es curl cURL significa URL del cliente. El cURL se utiliza para enviar datos a cualquier URL. Para obtener más detalles sobre qué es exactamente el rizo, puede visitar el sitio web de CURL

cURL en PHP Ahora se introduce el mismo concepto en PHP, para enviar datos a cualquier URL accesible a través del protocolo diferente, por ejemplo, HTTP o FTP. Para más detalles, puede consultar el tutorial de PHP Curl


En primer lugar, entendamos los conceptos de curl, libcurl y PHP / cURL.

  1. curl : una herramienta de línea de comandos para obtener o enviar archivos utilizando la sintaxis de URL.

  2. libcurl : una biblioteca creada por Daniel Stenberg, que le permite conectarse y comunicarse con muchos tipos diferentes de servidores con muchos tipos diferentes de protocolos. libcurl actualmente admite los protocolos http, https, ftp, gopher, telnet, dict, file y ldap. libcurl también admite certificados HTTPS, HTTP POST, HTTP PUT, carga de FTP (esto también se puede hacer con la extensión ftp de PHP), carga basada en formularios HTTP, proxies, cookies y autenticación de usuario y contraseña.

  3. PHP / cURL : el módulo para PHP que hace posible que los programas PHP utilicen libcurl.

Cómo usarlo:

paso1 : Inicializar una sesión de curl con curl_init ().

paso2 : Establecer la opción para CURLOPT_URL. Este valor es la URL a la que estamos enviando la solicitud. Aplique un término de búsqueda "curl" usando el parámetro "q =". Configure la opción CURLOPT_RETURNTRANSFER, true indicará a curl que devuelva la cadena en lugar de imprimirla. Configure la opción para CURLOPT_HEADER, false indicará a curl que ignore el encabezado en el valor de retorno.

Paso 3 : Ejecuta la sesión de curl usando curl_exec ().

Paso 4 : cierra la sesión de curl que hemos creado.

step5 : Salida de la cadena de retorno.

Hacer DEMO :

Necesitará crear dos archivos PHP y colocarlos en una carpeta desde donde su servidor web pueda servir archivos PHP. En mi caso los puse en / var / www / por simplicidad.

1. helloservice.php y 2. demo.php

helloservice.php es muy simple y, esencialmente, simplemente repite los datos que recibe:

<?php // Here is the data we will be sending to the service $some_data = array( ''message'' => ''Hello World'', ''name'' => ''Anand'' ); $curl = curl_init(); // You can also set the URL you want to communicate with by doing this: // $curl = curl_init(''http://localhost/echoservice''); // We POST the data curl_setopt($curl, CURLOPT_POST, 1); // Set the url path we want to call curl_setopt($curl, CURLOPT_URL, ''http://localhost/demo.php''); // Make it so the data coming back is put into a string curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Insert the data curl_setopt($curl, CURLOPT_POSTFIELDS, $some_data); // You can also bunch the above commands into an array if you choose using: curl_setopt_array // Send the request $result = curl_exec($curl); // Get some cURL session information back $info = curl_getinfo($curl); echo ''content type: '' . $info[''content_type''] . ''<br />''; echo ''http code: '' . $info[''http_code''] . ''<br />''; // Free up the resources $curl is using curl_close($curl); echo $result; ?>

En la página 2.demo.php , puedes ver el resultado:

<?php print_r($_POST); //content type: text/html; charset=UTF-8 //http code: 200 //Array ( [message] => Hello World [name] => Anand ) ?>


La extensión cURL a PHP está diseñada para permitirle usar una variedad de recursos web desde su script PHP.


cURL en PHP es un puente para usar la línea de comandos cURL del lenguaje php


cURL es una forma en la que puede golpear una URL desde su código para obtener una respuesta HTML. Se usa para la línea de comandos cURL del lenguaje PHP.

<?php // Step 1 $cSession = curl_init(); // Step 2 curl_setopt($cSession,CURLOPT_URL,"http://www.google.com/search?q=curl"); curl_setopt($cSession,CURLOPT_RETURNTRANSFER,true); curl_setopt($cSession,CURLOPT_HEADER, false); // Step 3 $result=curl_exec($cSession); // Step 4 curl_close($cSession); // Step 5 echo $result; ?>

Paso 1: Inicializa una sesión de curl usando curl_init() .

Paso 2: Establecer la opción para CURLOPT_URL . Este valor es la URL a la que estamos enviando la solicitud. Agregue un término de búsqueda curl usando el parámetro q= . Establecer la opción para CURLOPT_RETURNTRANSFER . True indicará a curl que devuelva la cadena en lugar de imprimirla. Configure la opción para CURLOPT_HEADER , false indicará a curl que ignore el encabezado en el valor de retorno.

Paso 3: Ejecuta la sesión de curl usando curl_exec() .

Paso 4: Cierre la sesión de curl que hemos creado.

Paso 5: Salida de la cadena de retorno.

public function curlCall($apiurl, $auth, $rflag) { $ch = curl_init($apiurl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if($auth == ''auth'') { curl_setopt($ch, CURLOPT_USERPWD, "passw:passw"); } else { curl_setopt($ch, CURLOPT_USERPWD, "ss:ss1"); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $dt = curl_exec($ch); curl_close($ch); if($rflag != 1) { $dt = json_decode($dt,true); } return $dt; }

Esto también se utiliza para la autenticación. También podemos configurar el nombre de usuario y la contraseña para la autenticación.

Para obtener más funcionalidad, consulte el manual del usuario o el siguiente tutorial:

http://php.net/manual/en/ref.curl.php
http://www.startutorial.com/articles/view/php-curl


cURL es una forma en que puede golpear una URL desde su código para obtener una respuesta html. cURL significa URL del cliente que le permite conectarse con otras URL y usar sus respuestas en su código.


cURL es una biblioteca que te permite realizar solicitudes HTTP en PHP. Todo lo que necesita saber al respecto (y la mayoría de las otras extensiones) se puede encontrar en el manual de PHP .

Para usar las funciones de PHP cURL necesita instalar »el paquete libcurl. PHP requiere que uses libcurl 7.0.2-beta o superior. En PHP 4.2.3, necesitará la versión 7.9.0 de libcurl o superior. Desde PHP 4.3.0, necesitarás una versión de libcurl de 7.9.8 o superior. PHP 5.0.0 requiere una versión de libcurl 7.10.5 o superior.

También puede realizar solicitudes HTTP sin cURL, aunque requiere que allow_url_fopen esté habilitado en su archivo php.ini .

// Make a HTTP GET request and print it (requires allow_url_fopen to be enabled) print file_get_contents(''http://www.example.com/'');