Qué es cURL en PHP?
En PHP, veo la palabra cURL en muchos proyectos PHP. ¿Qué es eso? ¿Cómo funciona?
Enlace de referencia: ( ¿Qué es cURL en PHP?)
9 answers
CURL es una biblioteca que permite realizar peticiones HTTP en PHP. Todo lo que necesita saber sobre él (y la mayoría de las otras extensiones) se puede encontrar en el manual de PHP .
Para usar las funciones cURL de PHP es necesario instalar el " libcurl paquete. PHP requiere que utilices libcurl 7.0.2-beta o superior. En PHP 4.2.3, necesitará libcurl versión 7.9.0 o superior. Desde PHP 4.3.0, necesitará una versión libcurl que sea 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/');
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-13 06:25:08
CURL es una forma en la que puedes acceder a una URL de tu código para obtener una respuesta html de ella. cURL significa URL de cliente que le permite conectarse con otras URL y usar sus respuestas en su código.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-22 15:47:58
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 OBTENER / PUBLICAR solicitudes, recibir respuestas de otros servidores como JSON y descargar archivos.
Advertencia, Peligro:
curl
es malvado y peligroso si se usa incorrectamente porque se trata de obtener datos de Internet. Alguien puede interponerse entre su curl y el otro servidor y inyecte un rm -rf /
en su respuesta, y luego ¿por qué me dejan en una consola y ls -l
ya ni siquiera funciona? Porque subestimaste el peligroso poder de Curl. No confíe en nada que regrese de curl para estar seguro, incluso si está hablando con sus propios servidores. Podrías estar retirando malware para liberar a los tontos de su riqueza.
Ejemplos:
Estos se hicieron en Ubuntu 12.10
-
Rizo básico de 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
Glorious cats evolving Toxoplasma gondii to cause women to keep cats around and men likewise to keep the women around.
-
CURL ejemplo get request to hit google.com, echo a la línea de comandos:
Esto se hace a través de la 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 condensado y javascript (de Google) a la consola.
-
CURL ejemplo poner el texto de respuesta en una variable:
Esto se hace a través de la 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.
-
Haga 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útelo a través de la línea de comandos:
php < myphp.php
Usted corrió myphp.php y ejecutó esos comandos a través del intérprete php y arrojó un montón de html y javascript desordenados a screen.
Puede hacer solicitudes
GET
yPOST
con curl, todo lo que hace es especificar los parámetros definidos aquí: http://curl.haxx.se/docs/httpscripting.html#POST
Recordatorio del peligro:
Tenga cuidado volcando la salida de rizo alrededor, si alguno 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 Alabama 900 de una compañía de pisos de un solo hombre de Alabama que es una fachada para una red de delitos de fraude de tarjetas de crédito en el extranjero.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-08 23:11:30
CURL es una forma en la que puedes acceder a una URL de tu código para obtener una respuesta HTML de ella. Se utiliza para la línea de comandos cURL desde el 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 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. Añada un término de búsqueda curl
utilizando el parámetro q=
. Establecer opción para CURLOPT_RETURNTRANSFER
. True le dirá a curl que devuelva la cadena en lugar de imprimirla. Establezca la opción para CURLOPT_HEADER
, false le dirá a curl que ignore el encabezado en el valor devuelto.
Paso 3: Ejecute la sesión curl usando curl_exec()
.
Paso 4: Cierra la sesión curl que hemos creado.
Paso 5: Muestra 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 usa para la autenticación. También podemos establecer el nombre de usuario y la contraseña para la autenticación.
Para obtener más funcionalidad, consulte el manual del usuario o lo siguiente tutorial:
Http://php.net/manual/en/ref.curl.php
http://www.startutorial.com/articles/view/php-curl
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-12 06:37:32
La extensión cURL para PHP está diseñada para permitirle usar una variedad de recursos web desde su script PHP.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-21 05:27:18
Primero entendamos los conceptos de curl, libcurl y PHP/cURL.
Curl : Una herramienta de línea de comandos para obtener o enviar archivos usando sintaxis de URL.
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 soporta actualmente los protocolos http, https, ftp, gopher, telnet, dict, file y ldap. libcurl también soporta Certificados HTTPS, HTTP POST, HTTP PUT, carga 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+contraseña.
PHP / cURL : El módulo para PHP que hace posible que los programas PHP usen libcurl.
Cómo usarlo:
Step1 : Inicializa una sesión curl usando curl_init().
Step2 : Establecer la opción para CURLOPT_URL. Este valor es la URL que somos enviando la solicitud a.Añada un término de búsqueda "curl" usando el parámetro " q=".Establecer la opción CURLOPT_RETURNTRANSFER, true le dirá a curl que devuelva la cadena en lugar de imprimirla. Set option for CURLOPT_HEADER, false le dirá a curl que ignore el encabezado en el valor devuelto.
Step3 : Ejecuta la sesión curl usando curl_exec().
Step4 : Cierra la sesión curl que hemos creado.
Step5 : Muestra la cadena de retorno.
Hacer DEMO :
Necesitará crear dos archivos PHP y colocarlos en una carpeta desde la que su servidor web pueda servir archivos PHP. En mi caso los pongo en / var / www / por simplicidad.
1. helloservice.php y 2. demo.php
Helloservice.php es muy simple y esencialmente se hace eco de todos los datos que obtiene:
<?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;
?>
2.demo.php página, se puede ver el resultado:
<?php
print_r($_POST);
//content type: text/html; charset=UTF-8
//http code: 200
//Array ( [message] => Hello World [name] => Anand )
?>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-29 11:12:45
CURL en PHP es un puente para usar cURL de línea de comandos del lenguaje php
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-02 03:17:30
RIZO
- cURL es una forma en la que puedes acceder a una URL de tu código para obtener una respuesta HTML de ella.
- Se utiliza para la línea de comandos cURL desde el lenguaje PHP.
- cURL es una biblioteca que permite realizar peticiones HTTP en PHP.
PHP soporta 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 soporta http, https, ftp, gopher, protocolos telnet, dict, file y ldap. libcurl también admite certificados HTTPS, HTTP POST, HTTP PUT, carga 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+contraseña.
Una vez que haya compilado PHP con soporte cURL, puede comenzar a usar las funciones cURL. La idea básica detrás de las funciones cURL es que inicializa una sesión cURL usando el curl_init (), luego puede establecer todas sus opciones para la transferencia a través de curl_setopt (), luego puedes ejecutar la sesión con curl_exec () y luego terminar 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 obtener más información, consulte -
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-30 06:40:06
Curl no es más que una extensión de PHP que hereda comportamientos del comando y biblioteca curl normal escrito principalmente para Linux/Unix command line tool
Qué 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 curl, puede visitar 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 PHP Curl Tutorial
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-21 20:18:49