curl запуск php скрипта

PHP CURL – Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ языкС программирования PHP, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ Ρ‚Π΅ΠΌΡƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ CURL, Ρ‚.Π΅. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ сСрвСрами ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ ΠΈΠ· самого скрипта PHP.

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ curl Ρ…ΠΎΡ‡Ρƒ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ язык PHP ΠΌΡ‹ с Π’Π°ΠΌΠΈ ΡƒΠΆΠ΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ ΠΏΡ€ΠΎ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΡƒ Π² Excel Π½Π° PHP ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° PHP, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ возмоТности ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ запросы Π½Π° PHP.

curl запуск php скрипта. curl php 1. curl запуск php скрипта Ρ„ΠΎΡ‚ΠΎ. curl запуск php скрипта-curl php 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° curl запуск php скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° curl php 1. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ языкС программирования PHP, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ Ρ‚Π΅ΠΌΡƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ CURL, Ρ‚.Π΅. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ сСрвСрами ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ ΠΈΠ· самого скрипта PHP.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ CURL?

CURL – это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ PHP, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ запросы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, HTTP, ΠΈΠ· PHP скрипта. CURL ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΊΠ°ΠΊ HTTP, HTTPS, FTP ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. ΠŸΠΎΡΡ‹Π»Π°Ρ‚ΡŒ HTTP запросы ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ GET, POST, PUT.

CURL ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² случаях ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ скрипт ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠ»ΠΈ просто ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ HTML ΠΊΠΎΠ΄ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ страницы, Π² ΠΎΠ±Ρ‰Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ своС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½ΠΎ смысл ΠΎΠ΄ΠΈΠ½ это Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ запросы Π² процСссС выполнСния скрипта.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ CURL Π² PHP

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ CURL Π΅Π΅ соотвСтствСнно Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅! Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PHP 5.4.39 Π½Π° Windows 7, Π° Π² качСствС Web-сСрвСра Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Apache 2.2.22.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ssleay32.dll, libeay32.dll, libssh2.dll ΠΎΠ½ΠΈ располоТСны Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с PHP, Π² систСмный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Windows, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² C:\Windows\System32.

Π—Π°Ρ‚Π΅ΠΌ Π² php.ini ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ php_curl.dll, Ρ‚.Π΅. Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π°

ВсС, пСрСзапускаСм Apache, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ phpinfo() ΠΈ Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρƒ Вас Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Ρ€Π°Π·Π΄Π΅Π» curl

curl запуск php скрипта. curl php 2. curl запуск php скрипта Ρ„ΠΎΡ‚ΠΎ. curl запуск php скрипта-curl php 2. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° curl запуск php скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° curl php 2. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ языкС программирования PHP, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ Ρ‚Π΅ΠΌΡƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ CURL, Ρ‚.Π΅. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ сСрвСрами ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ ΠΈΠ· самого скрипта PHP.

Если Π΅Π³ΠΎ Π½Π΅Ρ‚, Ρ‚ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»Π°ΡΡŒ, самая распространСнная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° этого Π½Π΅Π±Ρ‹Π»ΠΈ скопированы Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ DLL Π² систСмный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Windows.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ CURL – Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ страницу для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ просто запросим ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ страницу ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ HTTP ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ GET ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π΅Π΅ содСрТимоС Π½Π° экран.

Π£ нас имССтся ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ test Π² Π½Π΅ΠΌ 2 PHP Ρ„Π°ΠΉΠ»Π° это test_curl.php ΠΈ test.php, Π³Π΄Π΅ test_curl.php ΠΈ Π΅ΡΡ‚ΡŒ скрипт Π³Π΄Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ curl, Π° test.php ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ скрипт ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ. Код я ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π».

Код test_curl.php

Код test.php

Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ссли Π²Ρ‹ запуститС test_curl.php Ρƒ Вас вывСдСтся Π½Π° экран надпись Β«Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 1Β», ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² id (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС 2 ΠΈΠ»ΠΈ 3).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ CURL – Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ скрипт ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

БСйчас Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ скрипт ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ POST. Названия Ρ„Π°ΠΉΠ»ΠΎΠ² оставим Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅.

Код test_curl.php

Код test.php

И Ссли ΠΌΡ‹ запустим test_curl.php Ρ‚ΠΎ Π½Π° экран Ρƒ нас вывСдСтся 111, Ρ‚.Π΅. 1.11 ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ обращСния ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ скрипту, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π½Π° 100.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ функциях ΠΈ константах ΠΊ Π½ΠΈΠΌ.

Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CURL ΠΈ константы

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ функциях CURL ΠΈ константах ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС PHP β€” php.net

На этом всС, для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… я Π΄ΡƒΠΌΠ°ΡŽ достаточно Π£Π΄Π°Ρ‡ΠΈ!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

cURL Π² PHP: ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ POST, GET запросов с headers, cookie, JSON ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим эффСктивныС ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с cURL, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ POST, GET ΠΈ Ρ‚.Π΄. запросов, Ρ€Π°Π±ΠΎΡ‚Ρƒ с cookie, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, JSON Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Π²Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ с HTTP запросами.

GET запрос ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ cURL

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ curl_init(), Π° Π·Π°Ρ‚Π΅ΠΌ слСдуСт Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ.

ВсС настройки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ этой ссылкС. Π’Π°ΠΌ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΎΠΏΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ curl_setopt, Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ простого GET запроса ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ cURL:

Если Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ сСрвСр Π²Π΅Ρ€Π½Π΅Ρ‚ Π½Π°ΠΌ Ρ€Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚, Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎ Π½Π΅ΠΌΡƒ автоматичСски Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ. А ΠΈΠ½ΠΎΠ³Π΄Π° это Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Π§Ρ‚ΠΎΠ±Ρ‹ cURL автоматичСски шСл ΠΏΠΎ Ρ€Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚Ρƒ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ CURLOPT_FOLLOWLOCATION.

Π‘ установлСнной ΠΎΠΏΡ†ΠΈΠ΅ΠΉ скрипт автоматичСски ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΏΠΎ Π²Π΅Ρ€Π½ΡƒΠ²ΡˆΠ΅ΠΌΡƒΡΡ Ρ€Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚Ρƒ ΠΈ Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ ΡƒΠΆΠ΅ с ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ страницы.

POST запрос ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ cURL

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠΌ post запрос Π½Π° адрСс https://httpbin.org/anything

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, с GET ΠΈ POST запросами Π² cURL ΠΌΡ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ освоились. Π’Π΅ΠΏΠ΅Ρ€ΡŒ разбСрСмся с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΡΡ‹Π»Π°Ρ‚ΡŒ Π² запросС.

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΡ†ΠΈΠΈ CURLOPT_HTTPHEADER Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΡˆΠ΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Π° эта опция Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ POST запрос Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON

cURL: POST запрос Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ JSON запроса ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ POST запроса Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅ΠΌ поля ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ json_encode() И добавляСм Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Content-Type: application/json

cURL: GET запрос Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON

GET запрос Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON отправляСтся Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ POST запрос, просто Π½ΡƒΠΆΠ½ΠΎ CURLOPT_CUSTOMREQUEST ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² ‘GET’

cURL ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ‹ HTTP запросов: PUT, DELETE, HEAD, PATCH, OPTIONS, CONNECT ΠΈ Ρ‚.Π΄.

Π‘Ρ‚ΠΎΠΏ, Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ, ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈ Π²Ρ‹Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ Π²ΠΈΠ΄Ρ‹ запросов!

НичСго я Π½Π΅ Π²Ρ‹Π΄ΡƒΠΌΡ‹Π²Π°ΡŽ: HTTP ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ мноТСство Ρ‚ΠΈΠΏΠΎΠ² HTTP запросов просто POST ΠΈ GET ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ распространСнными.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ PUT запрос, Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ CURLOPT_PUT Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π­Ρ‚ΠΎ дСлаСтся ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, ΠΊΠ°ΠΊ ΠΈ CURLOPT_POST. Но Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ Π·ΠΎΠΎΠΏΠ°Ρ€ΠΊΠΎΠΌ запросов? Π Π°Π·Π²Π΅ Ρƒ cURL Π΅ΡΡ‚ΡŒ CURLOPT_DELETE ΠΈΠ»ΠΈ CURLOPT_HEAD? НСт.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ‹ запросов Π΅ΡΡ‚ΡŒ другая опция: CURLOPT_CUSTOMREQUEST

ВмСсто строки curl_setopt($curl, CURLOPT_POST, true); ΠΌΡ‹ явно Π·Π°Π΄Π°Π΅ΠΌ имя запроса ΠΎΠΏΡ†ΠΈΠ΅ΠΉ CURLOPT_CUSTOMREQUEST:

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠΊΠ° Π½Π΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ сСрвСр ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ запроса.

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. Π‘Π°ΠΌΡ‹ΠΉ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ способ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ:

Иногда ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ получСния Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΎΡ‚Π²Π΅Ρ‚Π°. К соТалСнию, ΠΎΠ½ΠΈ Π½Π΅ совсСм ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях.

Рассмотрим Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠœΡ‹ сначала опрСдСляСм Ρ€Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CURLINFO_HEADER_SIZE Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Ρ€Π΅Π·Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΈΠ· ΠΎΡ‚Π²Π΅Ρ‚Π°. К соТалСнию, это ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прокси ΠΈΠ»ΠΈ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Ρ€Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚Π°.

Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cURL

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ большой Ρ„Π°ΠΉΠ» пригодится этот способ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ссли Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ file_get_contents для скачивания Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚ΠΎ Ρ„Π°ΠΉΠ» сначала загруТаСтся Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π° ΠΏΠΎΡ‚ΠΎΠΌ сохраняСтся Π½Π° диск. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли Ρ„Π°ΠΉΠ» Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большой, Ρ‚ΠΎ скорСС всСго Π²Π°ΡˆΠ΅ΠΌΡƒ сСрвСру Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΡ‚ памяти. Π’Π°ΠΊΠΆΠ΅ ΠΊ памяти Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»Π΅Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ скачиваСм Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ cURL Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ сохраняСм Π΅Π³ΠΎ Π½Π° диск. НС смотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ этот способ Π½Π΅ годится для скачивания Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π²Π΅Π± страницу.

ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ cURL запросы Π² PHP

Для Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Π΅ запросы? НапримСр Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ URL адрСсов:

И Ссли ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ запросы, Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ запрос начнСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ закончился ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, Π° это сущСствСнно ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта.

Как Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ 3 запроса ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ? Π’ этом Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ curl_multi_

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π΅ΡˆΠΈΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… curl запросов. Нам Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ 3 запроса.

Π’Π°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ запросы Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС Ρ‡Π΅ΠΌ ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½Ρ‹Π΅.

cURL запросы с сохранСниСм ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ cookie ΠΈΠ· Ρ„Π°ΠΉΠ»Π°

cURL позволяСт Π½Π°ΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ cookie ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ запросов, Π° Ρ‚Π°ΠΊΠΆΠ΅ автоматичСски ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ cookie, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сСрвСр, сохраняя ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ запросами.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ cookie Ρƒ нас хранятся Π² Ρ„Π°ΠΉΠ»Π΅ cookie.txt Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ со скриптом (Ссли Π²Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ мСняли). Если ΠΌΡ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ запросы, Ρ‚ΠΎ cURL автоматичСски Π±Π΅Ρ€Π΅Ρ‚ ΠΈ отправляСт cookie Π½Π° сСрвСр, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° сайтС ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ сСанс ΠΌΠ΅ΠΆΠ΄Ρƒ запросами.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° cookie Π±Π΅Π· Ρ„Π°ΠΉΠ»ΠΎΠ²

Π˜ΠΌΠΌΠΈΡ‚Π°Ρ†ΠΈΡ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cURL

Иногда сайт, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΡ‹ обращаСмся ΠΌΠΎΠΆΠ΅Ρ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ запросы, Π·Π°Ρ‰ΠΈΡ‰Π°ΡΡΡŒ ΠΎΡ‚ парсинга. Если для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹Π΅ способы Π·Π°Ρ‰ΠΈΡ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° User-Agent, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΈΡ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ являСмся Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ взаимодСйствуСт с сайтом Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈ cookie, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ посылаСт Π±Ρ€Π°ΡƒΠ·Π΅Ρ€.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ установлСны Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ посылаСт Chrome.

Π’ простых ситуациях этого Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚. Но Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π·Π°Ρ‰ΠΈΡ‚Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ javascript ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠ΅, Ρ‚ΠΎ здСсь cURL бСссилСн, ΠΈ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ BAS Π»ΠΈΠ±ΠΎ Zennoposter. Π›ΠΈΠ±ΠΎ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒ ΡΡ‡Π°ΡΡ‚ΡŒΠ΅ с PHP, Ρ‚ΠΎ Selenium.

НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эти знания Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΡ€Π°Π²Π½Ρ‹Ρ… цСлях.

cURL запросы Ρ‡Π΅Ρ€Π΅Π· прокси

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ запросов Ρ‡Π΅Ρ€Π΅Π· proxy. Если ваш прокси ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ, Ρ‚ΠΎ раскоммСнтируйтС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ строчки.

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²

Авторизация с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cURL

HTTP Авторизация

Π§Ρ‚ΠΎΠ±Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cURL Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° сайтС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Basic HTTP-Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ CURLOPT_USERPWD, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ наш Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ.

OAuth авторизация

Авторизация Ρ‡Π΅Ρ€Π΅Π· Ρ„ΠΎΡ€ΠΌΡƒ

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π½Π°ΠΌΠΈ знания ΠΈ авторизируСмся Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ сайтС. Для этого Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΡƒΠ΄Π° Ρ„ΠΎΡ€ΠΌΠ° отправляСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° Ρ‚ΠΎ ΠΆΠ΅ самоС.

Допустим Π½Π° сайтС Π΅ΡΡ‚ΡŒ такая Ρ„ΠΎΡ€ΠΌΠ°:

Π’ΠΎΠ³Π΄Π° наш cURL запрос Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ сформирован Ρ‚Π°ΠΊ:

АвтоматичСскоС построСниС запросов

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ консольной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ curl Π² PHP

И Π²ΠΎΡ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ curl Π² PHP: https://incarnate.github.io/curl-to-php/

Π’Π°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ простыС запросы Π½Π° cURL Π² PHP Π½Π΅ создавая ΠΈΡ… Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Π›Π°ΠΉΡ„Ρ…Π°ΠΊ

Π’ консоли Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΡΠ΅Ρ‚ΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ любой запрос Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cURL, Π° ΠΏΠΎΡ‚ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сСрвиса curl-to-php пСрСвСсти запрос Π² PHP. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² cURL Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ любой запрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ посылаСт ваш Π±Ρ€Π°ΡƒΠ·Π΅Ρ€.

Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с cURL Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ: ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρƒ cURL Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΡ€ΠΈΠ²Ρ‹Π΅ ΠΈ ΡΡ‚Ρ€Π°ΡˆΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹? Π£ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π²Π·ΡΡ‚ΡŒ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΡƒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с cURL, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· большиС куски нСкрасивого ΠΊΠΎΠ΄Π°, Π° ΠΏΠΈΡΠ°Ρ‚ΡŒ всС ΠΏΡ€ΠΎΡ‰Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊ:

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, такая ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ° ΡƒΠΆΠ΅ написана ΠΈ Π½Π°ΠΉΡ‚ΠΈ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ здСсь: https://github.com/php-curl-class/php-curl-class

ΠŸΡ€ΠΎΡΡ‚ΠΎ установитС Π΅Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ: composer require php-curl-class/php-curl-class ΠΈ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ с ΠΊΡ€ΠΈΠ²Ρ‹ΠΌΠΈ кусками ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΎΠ²Ρ‹ вСроятно ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ cURL ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

POST ΠΈ GET запросы Π±Π΅Π· cURL

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PHP ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ простой GET запрос ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ file_get_contents.

ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ file_get_contents ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ POST запрос.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² stream_context_create, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ здСсь: http://docs.php.net/manual/ru/context.http.php

Π”Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с запросами Π² PHP

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с запросами Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт: Guzzle

НСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π½Π° Guzzle

GET запросы Π½Π° Guzzle

Π Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ запросов Π½Π° Guzzle

АсинхронныС запросы Π½Π° Guzzle

Если интСрСсно, Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅: Guzzle Quick Start

ΠŸΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ нСпонятно.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с URL

User Contributed Notes 27 notes

I wrote the following to see if a submitted URL has a valid http response code and also if it responds quickly.

Use the code like this:

Hey I modified script for php 5. Also I add support server auth. and fixed some little bugs on the script.

[EDIT BY danbrown AT php DOT net: Original was written by (unlcuky13 AT gmail DOT com) on 19-APR-09. The following note was included:
Below is the my way of using through PHP 5 objecte oriented encapsulation to make thing easier.]

I needed to use cURL in a php script to download data using not only SSL for the server authentication but also for client authentication.
On a default install of Fedora, setting up the proper cURL parameters, I would get an error:

$ php curl.php
Peer certificate cannot be authenticated with known CA certificates

The data on http://curl.haxx.se/docs/sslcerts.html was most useful. Indeed, toward to bottom it tells you to add a missing link inside /etc/pki/nssdb to use the ca-bundle.crt file. You do it so:

Now you can do client authentication, provided you have your certificate handy with:

In this example: http://php.net/manual/en/book.curl.php#102885 by «frank at interactinet dot com»

There’s a small bug in

?>

The code will immediately leave the function at the `return`, and pcntl_wait() will NEVER be executed, under any circumstances.

I can’t see any other issues with this function however.

Sharing is caring, handles included.

$user_agent = ‘Mozilla HotFox 1.0’ ;

CURL failed with PHP5.3 and Apache2.2.X on my Windows 7 machine.

It turns out that it’s not enough to copy the two dll’s mentioned (libeay32 and sslea32) from the php folder into your system32 folder. You HAVE TO UNBLOCK THESE TWO FILES.

Right click the file, select unblock, for each one. Then restart Apache.

Another very handy security feature added into Windows.

Here you have a function that I use to get the content of a URL using cURL:

You can use this class for fast entry

[EDIT BY danbrown AT php DOT net: Includes a bugfix provided by (manuel AT rankone DOT ch) on 24-NOV-09 to properly reference cURL initialization.]

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

curl_exec

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_exec β€” ВыполняСт запрос cURL

ОписаниС

ВыполняСт запрос cURL.

Π­Ρ‚Π° функция Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ послС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСанса ΠΈ установки всСх Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄Ρ‹ состояния ΠΎΡ‚Π²Π΅Ρ‚Π°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° ошибки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 404 Not found ), Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π½Π΅ΡƒΠ΄Π°Ρ‡Π°. Ѐункция curl_getinfo() ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ… ошибок.

Бписок измСнСний

Π’Π΅Ρ€ΡΠΈΡΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
8.0.0handle Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ экзСмпляр CurlHandle ; Ρ€Π°Π½ΡŒΡˆΠ΅, оТидался рСсурс ( resource ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π²Π΅Π±-страницы

// созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ cURL рСсурса
$ch = curl_init ();

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

User Contributed Notes 23 notes

Just in case anyone is looking for a a couple of simple functions [to help automate cURL processes for POST and GET queries] I thought I’d post these.

Don’t disable SSL verification! You don’t need to, and it’s super easy to stay secure! If you found that turning off «CURLOPT_SSL_VERIFYHOST» and «CURLOPT_SSL_VERIFYPEER» solved your problem, odds are you’re just on a Windows box. Takes 2 min to solve the problem. Walkthrough here:

Be careful when using curl_exec() and the CURLOPT_RETURNTRANSFER option. According to the manual and assorted documentation:
Set CURLOPT_RETURNTRANSFER to TRUE to return the transfer as a string of the return value of curl_exec() instead of outputting it out directly.

When retrieving a document with no content (ie. 0 byte file), curl_exec() will return bool(true), not an empty string. I’ve not seen any mention of this in the manual.

Example code to reproduce this:
// fictional URL to an existing file with no data in it (ie. 0 byte file)
$url = ‘http://www.example.com/empty_file.txt’ ;

Thank you for sharing this. I was wondering why my result was 1.

To get around this in a safe way, this is how I check if the result is valid.

$ch = curl_init(); /// initialize a cURL session
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$xmlResponse = curl_exec ($ch);
curl_close ($ch);

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ curl ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° PHP?

Но всС ΠΎΠ½ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² консоли, Π° ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° PHP?

curl запуск php скрипта. acuna. curl запуск php скрипта Ρ„ΠΎΡ‚ΠΎ. curl запуск php скрипта-acuna. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° curl запуск php скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° acuna. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ языкС программирования PHP, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ Ρ‚Π΅ΠΌΡƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ CURL, Ρ‚.Π΅. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ сСрвСрами ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ ΠΈΠ· самого скрипта PHP.

Π•ΡΡ‚ΡŒ встроСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½Π΅ стоит Π³ΠΎΡ€ΠΎΠ΄ΠΈΡ‚ΡŒ вСлосипСды.

А Ρ‚Π°ΠΊ, ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ΠΊΠΈΠ΄Π°Π»ΠΈ ссыли Π²Ρ‹ΡˆΠ΅. Π’ΡƒΡ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉΡˆΠΈΠΉ ΠΌΠ°Π½ΡƒΠ°Π» ΠΏΠΎ опциям: php.net/manual/ru/function.curl-setopt.php. ВсС Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅)

curl запуск php скрипта. 3ecd1aed03c54450846506ae3d6a240c. curl запуск php скрипта Ρ„ΠΎΡ‚ΠΎ. curl запуск php скрипта-3ecd1aed03c54450846506ae3d6a240c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° curl запуск php скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 3ecd1aed03c54450846506ae3d6a240c. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ языкС программирования PHP, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ Ρ‚Π΅ΠΌΡƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ CURL, Ρ‚.Π΅. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ сСрвСрами ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ ΠΈΠ· самого скрипта PHP.

curl запуск php скрипта. acuna. curl запуск php скрипта Ρ„ΠΎΡ‚ΠΎ. curl запуск php скрипта-acuna. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° curl запуск php скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° acuna. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ языкС программирования PHP, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ Ρ‚Π΅ΠΌΡƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ CURL, Ρ‚.Π΅. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ сСрвСрами ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ ΠΈΠ· самого скрипта PHP.

curl запуск php скрипта. 3ecd1aed03c54450846506ae3d6a240c. curl запуск php скрипта Ρ„ΠΎΡ‚ΠΎ. curl запуск php скрипта-3ecd1aed03c54450846506ae3d6a240c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° curl запуск php скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 3ecd1aed03c54450846506ae3d6a240c. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ языкС программирования PHP, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ Ρ‚Π΅ΠΌΡƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ CURL, Ρ‚.Π΅. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ сСрвСрами ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ ΠΈΠ· самого скрипта PHP.

curl запуск php скрипта. acuna. curl запуск php скрипта Ρ„ΠΎΡ‚ΠΎ. curl запуск php скрипта-acuna. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° curl запуск php скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° acuna. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ языкС программирования PHP, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ Ρ‚Π΅ΠΌΡƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ CURL, Ρ‚.Π΅. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ сСрвСрами ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ ΠΈΠ· самого скрипта PHP.

Π’ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ API Π“ΠΈΡ‚Ρ…Π°Π±Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ https, ΠΎΠ½ Π½Π΅ пускаСт ΡŽΠ·Π΅Ρ€ΠΎΠ² Π±Π΅Π· сСртификатов. Π’ΠΎΠ³Π΄Π° ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ‚ΡŒ ΠΈΡ…:

curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, false);

ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΊΡƒΠΊΠΈ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΡΡƒΠ½ΡƒΡ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π΅Ρ‰Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ. НуТно Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠ°Π½ΡƒΠ°Π»Ρ‹ ΠΏΠΎ ΠΊΡƒΡ€Π»Π΅ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ свои CURLOPT согласно Π½ΡƒΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅, ситуаций ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈΠΌΠ΅Π½Π½ΠΎ поэтому Π½Π΅Ρ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½Π΅ΠΉ, ΠΈΠ±ΠΎ для Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ рСсурса ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ свой скрипт. ΠžΠΏΡ†ΠΈΠΉ нСсколько сотСн, хотя для повсСднСвной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ дСсятка.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *