1. Pasos básicos de solicitud de curl:
(1) Inicialización
(2) Establecer opciones, incluida la URL
(3) Ejecutar y obtener contenido de documento HTML
(4) Suelte el mango de curl
La copia del código es la siguiente:
<? Php
// 1. Inicialización
$ ch = curl_init ();
// 2. Establecer opciones, incluida la URL
curl_setopt ($ ch, curlopt_url, "http://www.cnblogs.com/it-cen/");
// devuelve la información obtenida por curl_exec () como una secuencia de archivo en lugar de emitirla directamente
curl_setopt ($ ch, curlopt_returntransfer, 1);
// Al comenzar, la información del archivo del encabezado se generará como un flujo de datos
curl_setopt ($ ch, curlopt_header, 1);
// 3. Ejecutar y obtener contenido de documento HTML
curl_exec ($ ch);
// 4. Libere el mango
curl_close ($ ch);
echo $ ch;
?>
Nota: El segundo paso es el más importante, es decir, la función curl_setopt ()
Podemos agregar una declaración para verificar los errores. Aquí debemos prestar atención a usar "=== falso", que es distinguir entre la producción vacía y el valor booleano falso
La copia del código es la siguiente:
$ output = curl_exec ($ ch);
if ($ output === false) {
echo "Error curl:". curl_error ($ ch);
}
La función curl_getInfo () devuelve información sobre esta solicitud después de ejecutar Curl, que es útil para depurar y solucionar problemas:
La copia del código es la siguiente:
curl_exec ($ ch);
$ info = curl_getinfo ($ ch);
echo '<pre>';
print_r ($ info);
echo '</pre>';
Datos devueltos
La copia del código es la siguiente:
Formación
(
[url] => http://www.cnblogs.com/it-cen/
[content_type] => text/html; Charset = UTF-8
[http_code] => 200
[Header_Size] => 312
[request_size] => 61
[Filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[Total_time] => 0.172
[namelookup_time] => 0.016
[Connect_time] => 0.063
[Pretransfer_time] => 0.063
[size_upload] => 0
[size_download] => 14658 <span style = "color: #ff0000;"> // Tamaño de datos solicitado </span>
[speed_download] => 85220
[speed_upload] => 0
[download_content_length] => 14658
[upload_content_length] => 0
[startTransfer_time] => 0.125
[redirect_time] => 0
[CertInfo] => Array
(
)
[redirect_url] =>
)
2. Esta información es muy útil en la depuración . Por ejemplo, cuando se rastrean curl, los datos de rastreo a menudo pueden ocurrir debido a las razones de la red, y podemos calcular los archivos del tamaño a través de los datos adquiridos y luego compararlos con los datos obtenidos. Si los tamaños son iguales, se determina que la descarga es correcta, de lo contrario, haremos intentos repetidos.
Echemos un vistazo a un ejemplo de imágenes de rastreo:
La copia del código es la siguiente:
<? Php
encabezado ("Tipo de contenido: imagen/png");
// 1. Inicialización
$ ch = curl_init ();
// 2. Establecer opciones, incluida la URL
curl_setopt ($ ch ,, curlopt_url, "http://img04.taobaocdn.com/tfscom/tb1omathxxxxxajxvxxtkxbfxxx.png");
curl_setopt ($ ch, curlopt_returntransfer, 1);
curl_setopt ($ ch, curlopt_header, 1);
// 3. Ejecutar y obtener contenido
$ res = curl_exec ($ ch);
// Obtener información
$ info = curl_getinfo ($ ch);
// 4. Liberar recursos
curl_close ($ ch);
file_put_contents ("d: /aa.png", $ res);
$ size = filesize ("d: /aa.png");
if ($ size! = $ info ['size_download']) {
echo "Los datos descargados están incompletos, descargándolo nuevamente";
} demás {
echo "Descargar datos completos";
}
?>
3. Envíe datos utilizando el método de publicación en Curl
La copia del código es la siguiente:
<? Php
$ ch = curl_init ();
$ data = array ('name' => 'kelly', 'edad' => 27, 'sexo' => 1);
curl_setopt ($ ch, curlopt_url, "http: //localhost.post.php");
curl_setopt ($ ch, curlopt_returntransfer, 1);
// establecido como publicación
curl_setopt ($ ch, curlopt_post, 1);
// Agregar la variable post
curl_setopt ($ ch, curlopt_postfields, $ data);
$ res = curl_exec ($ ch);
curl_close ($ ch);
echo $ res;
?>
Este método puede simular mensajes, o puede sentarse en un robot de riego, y las ideas son las mismas
4. Cargar archivos con curl
La copia del código es la siguiente:
<? Php
// Solicitud de datos cargados
$ data = array ('name' => 'belleza', "cargar" => "@a.zip");
$ ch = curl_init ();
curl_setopt ($ ch, curlopt_url, "http://127.0.0.1/socket/upload_file.php");
curl_setopt ($ ch, curlopt_returntransfer, 1);
curl_setopt ($ ch, curlopt_post, 1);
curl_setopt ($ ch, curlopt_postfields, $ data);
$ res = curl_exec ($ ch);
curl_close ($ ch);
echo $ res;
?>
Nota: Al enviar un archivo, prefijo @ antes del nombre del archivo y use la ruta completa
5. Artículo de configuración de curl
De hecho, Curl tiene muchas opciones de configuración, y estas opciones son el alma de Curl. Configurarlo a través de SetOpt (), lo siguiente resume varios elementos de configuración comunes e importantes. Espero que sea de ayuda para los lectores cuando usen Curl en el futuro:
Curlopt_autoreferer: al redirigir según la ubicación:, el referente: la información en el encabezado se establece automáticamente.
Curlopt_cookiesession: cuando se habilita, Curl pasará uncookie con fuerza, ignorando otras galletas
Curlopt_header: emite la información del archivo del encabezado como un flujo de datos
Curlopt_infilesize: establezca el tamaño del archivo cargado, en bytes
Curlopt_maxconnects: número máximo de conexiones permitidas
Curlopt_maxredirs: especifique el número máximo de redireccionamientos http
Curlopt_cookie: establezca el contenido de la parte "Cookie:" de la solicitud HTTP. A múltiples cookies son seguidas por un punto y coma, y se agrega un espacio al punto y coma.
Curlopt_postfields: todos los datos se envían utilizando la operación "post" en el protocolo HTTP para enviar el archivo que se enviará, y el nombre del archivo está prefijado por el prefijo @ y se usa la ruta completa.
.........
Para obtener más elementos de configuración, consulte el manual de PHP
Curl es muy poderoso, es una biblioteca general, no exclusiva de PHP.
Espero que los lectores puedan obtener algo al aprender varios ejemplos clásicos de curl en esta publicación de blog.