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);
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);
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);
<?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);
5. Simulierte Anmeldung file_put_contents()
<?php function curl_download($url, $path) { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $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');
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); }
<?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!