Heim >Backend-Entwicklung >PHP-Tutorial >cURL-Bibliothek in PHP
Dieser Artikel stellt Ihnen die cURL-Bibliothek in PHP vor. Jetzt können Freunde in Not darauf zurückgreifen.
PHP unterstützt die von Daniel Stenberg erstellte libcurl-Bibliothek, die eine Verbindung zu verschiedenen Servern herstellen und verschiedene Protokolle verwenden kann. Zu den derzeit von libcurl unterstützten Protokollen gehören http, https, ftp, gopher, telnet, dict, file und ldap. libcurl unterstützt außerdem HTTPS-Zertifikate, HTTP POST, HTTP PUT, FTP-Upload (kann auch über die FTP-Erweiterung von PHP durchgeführt werden), HTTP-Formular-Upload, Proxy, Cookies, Benutzername + Passwort-Authentifizierung.
Vorteile
file_get_contents()
<?php $content = file_get_contents("https://segmentfault.com"); var_dump($content);-Funktion sehr komfortabel zu verwenden ist, ist sie nicht flexibel genug und kann nicht mit Fehlern umgehen. Bei einigen komplexen Anfragen können weder Anfrageheader, Cookies, Proxys, Authentifizierung und andere zugehörige Informationen festgelegt werden, noch können Formulardaten an einen Server übermittelt oder Dateien hochgeladen werden.
file_get_contents()
Die cURl-Bibliothek unterstützt nicht nur umfangreiche Netzwerkprotokolle, sondern bietet auch Methoden zum Festlegen verschiedener URL-Anforderungsparameter, was leistungsstark ist. Es gibt viele Verwendungsszenarien für cURL, z. B. den Zugriff auf Webressourcen, das Abrufen von WebService-Schnittstellendaten und das Herunterladen von FTP-Serverdateien.
Grundlegende Schritte zur Verwendung von
fest. Spezifische Beschreibungen der einzelnen Optionen finden Sie unter http://php.net/manual/zh/func. ..
Die Fehlerdetails der cURL-Sitzung können über die Funktion
und die Antwortinformationen über die Funktion// 1. 初始化 cURL 会话 $ch = curl_init(); // 2. 设置请求选项 curl_setopt($ch, CURLOPT_URL, "https://segmentfault.com"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); # 获取的信息以字符串返回,而不是直接输出 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); # 禁止 cURL 验证对等证书,从而支持 HTTPS 访问 // 3. 执行 cURL 会话 $response = curl_exec($ch); var_dump($response); // 4. 关闭 cURL 会话 curl_close($ch);
Praktischer Fallcurl_setopt()
POST-AnfrageVerwenden Sie cURL, um das Senden einer POST-Anfrage zu simulieren: curl_error()
curl_getinfo()
2. Datei-Upload
<?php // 1. 初始化 cURL 会话 $ch = curl_init(); // 2. 设置请求选项 curl_setopt($ch, CURLOPT_URL, "https://segmentfault.com/test.php"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); # 获取的信息以字符串返回,而不是直接输出 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); # 禁止 cURL 验证对等证书,从而支持 HTTPS 访问 // 3. 执行 cURL 会话 $response = curl_exec($ch); if ($response === FALSE) { echo "cURL connert error: " . curl_error($ch); exit; } $info = curl_getinfo($ch); if ($info['http_code'] == 404) { echo 'HTTP 404'; exit; } var_dump($response); // 4. 关闭 cURL 会话 curl_close($ch);CURLOPT_POSTFIELDS: Alle Daten werden mithilfe der „POST“-Operation im HTTP-Protokoll gesendet. Um eine Datei zu senden, stellen Sie dem Dateinamen ein @ voran und verwenden Sie den vollständigen Pfad. Der Dateityp kann im Format „;type=mimetype“ hinter dem Dateinamen angegeben werden. Dieser Parameter kann eine URL-codierte Zeichenfolge sein, ähnlich wie „val1=1&val2=2&...“, oder Sie können ein Array mit dem Feldnamen als Schlüssel und den Felddaten als Wert verwenden. Senden Sie eine POST-Anfrage über cURL, um den Datei-Upload zu implementieren:
3. Datei-Download
<?php function curl_post($url, $data) { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => 1, # 获取的信息以字符串返回 CURLOPT_POST => 1, # 发送 POST 请求 CURLOPT_POSTFIELDS => $data, # POST 请求数据 ]); $response = curl_exec($ch); curl_close($ch); return $response; } $url = 'http://localhost/test.php'; $data = ['id' => 1, 'username' => 'jochen']; echo curl_post($url, $data);Eigentlich ist der Datei-Download derselbe wie eine normale GET-Anfrage, nur Datei-Download Speichern Sie den zurückgegebenen Inhalt in einer Datei, anstatt ihn einfach auszugeben. Arbeiten Sie mit der Funktion
<?php function curl_upload($url, $data) { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => 1, # 获取的信息以字符串返回 CURLOPT_POST => 1, # 发送 POST 请求 CURLOPT_POSTFIELDS => $data, # POST 请求数据 ]); $response = curl_exec($ch); curl_close($ch); return $response; } $url = 'http://localhost/test.php'; $data = ['id' => 1, 'file' => '@/root/image/boy.jpg']; echo curl_post($url, $data);fest:
5. Simulierte Anmeldung file_put_contents()
56b62e99cd671c33a22cc122cd1dca25 $url, CURLOPT_RETURNTRANSFER => 1, # 获取的信息以字符串返回 ]); $response = curl_exec($ch); curl_close($ch); return file_put_contents($path, $response); } curl_download('http://localhost/boy.jpg', './boy.jpg');cURL-Verpackungsbibliothek
CURLOPT_USERPWD
PHP Curl Class ist eine gut geschriebene cURL-Wrapper-Bibliothek, die das Senden von HTTP-Anfragen und die Integration in jede Art von Web-API sehr bequem macht. Die Wrapper-Bibliothek der PHP-Curl-Klasse ist für PHP 5.3, 5.4, 5.5, 5.6, 7.0, 7.1 und HHVM verfügbar. Diese Bibliothek ist bekannt und bietet eine sehr einfache Syntax:
<?php function curl_auth($url, $user, $passwd) { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_USERPWD => "$user:$passwd", # 格式为:"[username]:[password]" CURLOPT_RETURNTRANSFER => 1 ]); $result = curl_exec($ch); curl_close($ch); return $result; } echo curl_auth('http://localhost', 'jochen', 'password');
<?php // 模拟登录获取 Cookie function curl_login($url, $data, $cookie) { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_POST => 1, # 发送 POST 请求 CURLOPT_POSTFIELDS => $data, # POST 请求数据 CURLOPT_COOKIEJAR => $cookie # 将 cookie 信息保存至文件中 CURLOPT_RETURNTRANSFER => 1, # 获取的信息以字符串返回 ]); $response = curl_exec($ch); curl_close($ch); return $response; } // 获取页面数据 function curl_content($url, $cookie) { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_COOKIEFILE => $cookie # 加载包含 Cookie 数据的文件 CURLOPT_RETURNTRANSFER => 1, # 获取的信息以字符串返回 ]); $response = curl_exec($ch); curl_close($ch); return $response; } $post = ['username' => 'jochen', 'password' => '123456']; $cookie = './cookie.txt'; if (curl_login('http://localhost/login', $post, $cookie)) { echo curl_content('http://localhost', $cookie); }Client-URL-Bibliothek Einführendes Tutorial und allgemeine Anwendungsbeispiele für Curl in PHP
<?php require __DIR__ . '/vendor/autoload.php'; use \Curl\Curl; $curl = new Curl(); $curl->get('https://www.example.com/'); if ($curl->error) { echo 'Error: ' . $curl->errorCode . ': ' . $curl->errorMessage . "\n"; } else { echo 'Response:' . "\n"; var_dump($curl->response); }
Das obige ist der detaillierte Inhalt voncURL-Bibliothek in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!