c URL е много полезен инструмент за команден ред за прехвърляне на данни от или към сървър. Curl поддържа различни протоколи като FILE, HTTP, HTTPS, IMAP, IMAPS, LDAP, DICT, LDAPS, TELNET, FTPS, GOPHER, RTMP, RTSP, SCP, SFTP, POP3, POP3S, SMB, SMBS, SMTP, SMTPS и TFTP .
cURL може да се използва по много различни и интересни начини. С този инструмент можете да изтегляте, качвате и управлявате файлове, да проверявате своя имейл адрес или дори да актуализирате състоянието си в някои уебсайтове на социални медии или да проверявате времето навън. В тази статия ще разгледаме петте най-полезни и основни употреби на инструмента cURL на всеки .
1. Проверете URL адреса
Една от най-честите и най-прости употреби на cURL е отпечатването на самата команда, последвана от URL адреса, който искате да тествате
Curl https://domain.ru
Тази команда ще покаже съдържанието на URL адреса на вашия терминал
2. Запазете URL изхода във файл
Curl -o уебсайт https://domain.ru % Общо % Получени % Xferd Средна скорост Време Време Време Текущо Dload Качване Общо изразходвана лява скорост 100 41793 0 41793 0 0 275k 0 --:--:-- - -:-- :-- --:--:-- 2.9M
В този пример изходът ще бъде записан във файл с име „website“ в текущата работна директория.
3. Качване на файлове с помощта на Curl
Можете да изтегляте файлове с помощта на Curl, като добавите опцията -o към командата. Използва се за запазване на файлове на локалния сървър със същите имена като на отдалечения сървър
Curl -O https://domain.ru/file.zip
В този пример архивът 'file.zip' ще бъде изтеглен в текущата работна директория.
Можете също да качите файл с различно име, като добавите опцията -o към cURL.
Curl -o archive.zip https://domain.ru/file.zip
Така архивът „file.zip“ ще бъде изтеглен и записан като „Archive.zip“.
cURL може да се използва и за изтегляне на множество файлове наведнъж, както е показано в примера по-долу
Curl -O https://domain.ru/file.zip -O https://domain.com/file2.zip
Curl може да се използва и за сигурно качване на файлове през SSH чрез следната команда
Curl -u потребител sftp://server.domain.ru/path/to/file
Моля, обърнете внимание, че трябва да използвате пълния път до файла, който искате да изтеглите
4. Вземете информация от HTTP хедъра на уебсайта
Можете лесно да получите информация за HTTP заглавка от всеки уебсайт, като добавите опцията -I ('i') към cURL.
Curl -I http://domain.ru HTTP/1.1 200 OK Дата: Sun, 16 Oct 2016 23:37:15 GMT Сървър: Apache/2.4.23 (Unix) X-Powered-By: PHP/5.6.24 Връзка : затворете Content-Type: text/html; charset=UTF-8
5. Достъп до FTP сървър
За достъп до FTP сървъра с помощта на Curl трябва да използвате следната команда
Curl ftp://ftp.domain.ru --user потребителско име:парола
Curl ще се свърже с FTP сървъра и ще изведе всички файлове и директории в домашната директория на потребителя
Можете да изтеглите файла чрез FTP
Curl ftp://ftp.domain.ru/file.zip --потребителско име:парола
и качете файла на FTP сървъра
Curl -T file.zip ftp://ftp.domain.ru/ --user потребителско име:парола
Можете да проверите страницата Curl ръчно, за да видите всички налични опции на cURL и нейната функционалност
Мъжка къдрица
PS.Ако тази публикация ви е харесала, моля, споделете я с приятелите си в социалните мрежи, като използвате бутоните по-долу или просто оставете коментар. благодаря
Реален практически пример: трябва да рестартирате вашия рутер (модем), за да промените IP адреса. За да направите това, трябва да: влезете в рутера, отидете на страницата за поддръжка и щракнете върху бутона „Рестартиране“. Ако това действие трябва да се извърши няколко пъти, тогава процедурата трябва да се повтори. Съгласете се, не искате да правите тази рутина ръчно всеки път. cURL ви позволява да автоматизирате всичко това. Само с няколко cURL команди можете да получите разрешение и да завършите задачата на рутера.
- cURL е полезен за извличане на данни от уебсайтове в командния ред.
Тези. случаите на използване на cURL са съвсем реални, въпреки че в повечето случаи cURL е необходим на програмисти, които го използват за своите програми.
CURL поддържа много протоколи и методи за оторизация, може да прехвърля файлове, работи правилно с бисквитки, поддържа SSL сертификати, проксита и много други.
cURL в PHP и командния ред
Можем да използваме cURL по два основни начина: в PHP скриптове и в командния ред.
За да активирате cURL в PHP на сървъра, трябва да разкоментирате реда във файла php.ini
Разширение=php_curl.dll
И след това рестартирайте сървъра.
На Linux трябва да инсталирате curl пакета.
В Debian, Ubuntu или Linux Mint:
$ sudo apt-get install curl
Във Fedora, CentOS или RHEL:
$ sudo yum инсталирайте curl
За да видим ясно разликата в използването в PHP и в командния ред, ще изпълним едни и същи задачи два пъти: първо в PHP скрипт и след това в командния ред. Нека се опитаме да не се объркаме.
Извличане на данни чрез cURL
Извличане на данни чрез cURL в PHP
Пример в PHP:
Много е просто:
$target_url- адреса на сайта, който ни интересува. След адреса на сайта можете да поставите двоеточие и да добавите адреса на порта (ако портът е различен от стандартния).
curl_init- инициализира нова сесия и връща манипулатор, който в нашия пример е присвоен на променлива $ch.
След това изпълняваме заявката с функцията cURL curl_exec, на който се предава дескриптор като параметър.
Всичко е много логично, но когато този скрипт се изпълни, съдържанието на сайта ще се покаже на нашата страница. Но какво, ако не искаме да показваме съдържанието, но искаме да го запишем в променлива (за последваща обработка или анализиране).
Нека добавим малко към нашия скрипт:
0) ( echo "Грешка при извиване: " . curl_error($ch); ) curl_close($ch); ?>
Имаме линия curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);.
curl_setopt- задава опции. Пълен списък с опции можете да намерите на тази страница:
Скрит от гостите
$response_data = curl_exec($ch);
Сега стойността на скрипта се присвоява на променливата $response_data, с която могат да се извършват допълнителни операции. Например, можете да покажете съдържанието му.
Шевове
If (curl_errno($ch) > 0) ( echo "Curl error: " . curl_error($ch); )
служат за отстраняване на грешки в случай на възникване на грешки.
Извличане на данни чрез cURL в командния ред
В командния ред просто въведете
където вместо mi-al.ru- адреса на вашия уебсайт.
Ако трябва да копирате данни в променлива, вместо да показвате резултата на екрана, направете следното:
Temp="curl mi-al.ru"
Някои данни обаче все още се показват:
За да предотвратите показването им, добавете ключа -s:
Temp="curl -s mi-al.ru"
Можете да видите какво е записано:
Echo $temp | по-малко
Основно и HTTP удостоверяванеУдостоверяването, най-просто казано, представлява въвеждане на потребителско име и парола.
Основното удостоверяване е удостоверяване от страна на сървъра. За целта се създават два файла: .htaccessи .htpasswd
Съдържанието на файла .htaccess е нещо подобно
AuthName "Само за регистрирани потребители!" AuthType Basic изисква валиден потребител AuthUserFile /home/freeforum.biz/htdocs/.htpassw
Съдържанието на файла .htpasswd е нещо подобно:
Миал:CRdiI.ZrZQRRc
Тези. хеш за вход и парола.
Когато се опитате да получите достъп до защитена с парола папка, браузърът ще покаже нещо подобно:
HTTP удостоверяването е случаят, когато въвеждаме потребителско име и парола във формуляр на уебсайт. Именно това удостоверяване се използва при влизане в поща, форуми и т.н.
Основно cURL удостоверяване (PHP)
Има сайт
Скрит от гостите
Нека опитаме нашия първоначален скрипт:
0) ( echo "Curl error: " . curl_error($ch); ) else ( echo $response_data; ) curl_close($ch); ?>
Въпреки че скриптът смята, че няма грешка, изходът изобщо не ни харесва:
Добавете два реда:
Curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "ru-board:ru-board");
В първия ред задаваме типа на удостоверяване - основен. Вторият ред съдържа името и паролата, разделени с двоеточие (в нашия случай името и паролата са същите - ru-board). Оказа се така:
0) ( echo "Curl error: " . curl_error($ch); ) else ( echo $response_data; ) curl_close($ch); ?> Да опитаме: 30946 Страхотно!
Основно cURL удостоверяване (на командния ред) Същото може да се постигне на командния ред с един ред: curl -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/
Не забравих да посоча типа удостоверяване, просто в cURL основният тип удостоверяване е по подразбиране.
Всичко се получи толкова бързо в командния ред, че от разочарование написах следната програма. Тя се свързва със сайта и изтегля последната актуализация:
Temp=`curl -s -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/ | grep -E -o "Update_FED_201(1).(2).(2).7z" | уникален | опашка -n 1`; curl -o $temp -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/$temp
- Само с още няколко команди можете да добавите:
- разопаковане на архива в посочената директория;
- стартиране на актуализации на ConsultantPlus (това са актуализации за него);
- можете да проверите дали последната налична актуализация вече е изтеглена или се е появила нова;
cURL за HTTP удостоверяване
Трябва да знаем:
- адрес, на който да изпратите данни за удостоверяване
- метод на изпращане GET или POST
- вход
- парола
Адресът, на който трябва да изпратите данните, може да бъде взет от формуляра за удостоверяване. Например: