Skip to content

Instantly share code, notes, and snippets.

@gostrafx
Last active February 23, 2021 14:44
Show Gist options
  • Save gostrafx/a03696498fb2d6b55c08a5a80c2ffd17 to your computer and use it in GitHub Desktop.
Save gostrafx/a03696498fb2d6b55c08a5a80c2ffd17 to your computer and use it in GitHub Desktop.
Curl php
<?php

$options = array (
CURLOPT_RETURNTRANSFER => true, // pour revenir page Web
CURLOPT_HEADER => false, // pour revenir en-têtes en plus de contenu
CURLOPT_FOLLOWLOCATION => true, // de suivre les redirections
CURLOPT_ENCODING => "", // pour gérer tous les encodages
CURLOPT_AUTOREFERER => true, // de mettre en referer sur redirection
CURLOPT_CONNECTTIMEOUT => 5, // définir un délai à la connexion
CURLOPT_TIMEOUT => 5, // définir un délai de la réponse
CURLOPT_MAXREDIRS => 5, // pour arrêter après 10 redirections
CURLINFO_HEADER_OUT => true, // pas de tête hors
CURLOPT_SSL_VERIFYPEER => false, // pour désactiver la vérification du certificat SSL
CURLOPT_FORBID_REUSE => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_COOKIESESSION => true,
 );

 $handle = curl_init($url);

 curl_setopt_array ($handle,$options);
 curl_setopt ($handle,CURLOPT_PROXY,'69.7.113.4');
 curl_setopt($ch, CURLOPT_PROXYPORT,80);
 $raw_content = curl_exec($handle);
 curl_close ($handle);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_HEADER, 0); // retourner têtes 0 non 1 oui
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Page 1 Retour: oui
curl_setopt($ch, CURLOPT_TIMEOUT, 200); //http Request Timeout 20 secondes
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Suivez les redirections, besoin si les changements d'URL
curl_setopt($ch, CURLOPT_MAXREDIRS, 2); //si le serveur http donne la réponse de redirection
curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7");

curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt"); // le stockage de cookies / ici les modifications ont été apportées
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // false pour https
curl_setopt($ch, CURLOPT_ENCODING, "gzip"); // le codage de la page
$data = curl_exec($ch); // exécuter la requête HTTP
curl_close($ch); // fermer la connexion


curl_setopt($ch, CURLOPT_AUTOREFERER, true); // true для автоматической подстановки referer

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); // Тайм-аут подключения в секундах
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 10000); // В милисекундах

curl_setopt($ch, CURLOPT_COOKIEFILE, 'file.txt'); // Файл для сохранения/чтения кук
curl_setopt($ch, CURLOPT_COOKIEJAR, 'file.txt');

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); // Тип запроса - GET, POST, PUT, DELETE

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // true - включить поддержку перенаправления, если был отправлен заголовок Location: ...

curl_setopt($ch, CURLOPT_HEADER, true); // true для включения заголовков в вывод.
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-type: text/plain', 'Content-length: 100']); // Массив устанавливаемых HTTP-заголовков

curl_setopt($ch, CURLOPT_TIMEOUT, 60); // Тайм-аут чтения в секундах
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 60000); // В милисекундах

curl_setopt($ch, CURLOPT_POST, true); // true для типа запроса POST
curl_setopt($ch, CURLOPT_POSTFIELDS, 'a=b&c=d'); // Отправляемые данные
curl_setopt($ch, CURLOPT_POSTFIELDS, ['file' => '@file.txt']); // @ - загрузка файлов

curl_setopt($ch, CURLOPT_FILE, 'savefile.zip'); // Данные буду загружать не в оперативную память, а в файл (полезно при скачивании файлов)

//При загрузке данных будет вызываться функция прогресса
curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, function($ch, $dwnTotal, $dwn, $uplTotal, $upl){
   $dwnTotal // Количество байт, которые нужно скачать
   $dwn 	 // Количество уже загруженных байт
   $uplTota  // Количество байт, которое нужно отдать
   $upl 	 // Количество отданных байт
});


curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:8080'); // Установка подключения через прокси, ip:port
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); // Установка типа прокси, возможные значения - CURLPROXY_HTTP, CURLPROXY_SOCKS5

curl_setopt($ch, CURLOPT_REFERER, 'http://google.com'); // Установка referer

curl_setopt($ch, CURLOPT_USERAGENT, 'My User-Agent'); // Установка user-agent

curl_setopt($ch, CURLOPT_USERPWD, 'Login:Password'); // Basic - авторизация

curl_setopt($ch, CURLOPT_URL, 'http://mysite.com');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment