Heim > Backend-Entwicklung > PHP-Tutorial > Grundlegende Verwendung der Curl-Funktionserweiterung in PHP

Grundlegende Verwendung der Curl-Funktionserweiterung in PHP

藏色散人
Freigeben: 2023-04-08 13:54:02
nach vorne
2184 Leute haben es durchsucht

Die Curl-Funktion von PHP bietet viele Funktionen, die in bestimmten Schritten kombiniert werden müssen. Lassen Sie uns zunächst die grundlegenden Schritte zum Einrichten einer Curl-Anfrage in PHP verstehen.

$ch = curl_init(); // 创建一个新的CURL资源赋给变量$ch
curl_setopt($ch, CURLOPT_URL, $url); // 设置URL
$response = curl_exec($ch); // 执行,获取URL并输出到浏览器
curl_close($ch); // 释放资源
Nach dem Login kopieren

Wenn wir den Inhalt abrufen, aber nicht ausgeben möchten, können wir den Parameter CURLOPT_RETURNTRANSFER verwenden und seinen Wert auf einen Wert ungleich 0 oder einen wahren Wert setzen.

Der Code lautet wie folgt:

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
Nach dem Login kopieren

Wir können unterschiedliche Ergebnisse erzielen, indem wir verschiedene Parameter der Funktion curl_setopt() festlegen. Dies ist auch die Stärke der CURL-Erweiterung. Die allgemeinen Parameteroptionen der Funktion „curl_setopt()“ sind in der offiziellen Dokumentation zu finden und werden hier nicht aufgeführt.

Das Folgende sind meine am häufigsten verwendeten Curl-Get- und Post-Anfragemethoden:

Get-Anfrage:

public function httpGet(string $url = '')
    {
        // 记录请求信息的日志
        // todo
        
        try {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_TIMEOUT, 60);
            //https 请求
            if (strlen($url) > 5 && strtolower(substr($url, 0, 5)) == "https") {
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
            }
            $response = curl_exec($ch);
            $errorCode = curl_errno($ch);
            curl_close($ch);
            if (!empty($errorCode)) {
                // 可记录错误码日志
                return null;
            }
            // 记录返回结果日志
            return $response;
        } catch (\Exception $e) {
            $errorLog = [
                'msg' => $e->getMessage(),
                'trace' => $e->getTraceAsString(),
                'data' => [
                    'url' => $url,
                ]
            ];
            // 记录错误日志
            return null;
        }
    }
```php
Nach dem Login kopieren

POST-Anfrage:

public function httpPost(string $url = '', array $data = [])
{
        // 记录请求信息的日志
        // todo
    try {
        $jsonData = json_encode($data);
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonData);
        curl_setopt($curl, CURLOPT_HEADER, 0);
        curl_setopt($curl, CURLOPT_TIMEOUT, 60);
        curl_setopt($curl, CURLOPT_HTTPHEADER, [
            'Content-Type: application/json; charset=utf-8',
            'Content-Length:' . strlen($jsonData)
        ]);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        //https 请求
        if (strlen($url) > 5 && strtolower(substr($url, 0, 5)) == "https") {
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        }
        $result = curl_exec($curl);
        $errorCode = curl_errno($curl);
        curl_close($curl);
        if (!empty($errorCode)) {
            // 可记录错误码日志
            return null;
        }
        // 记录返回结果日志
        return json_decode($result, true);
    } catch (\Exception $e) {
        $errorData = [
            'msg' => $e->getMessage(),
            'trace' => $e->getTraceAsString(),
            'data' => [
                'url' => $url,
                'postData' => $data
            ]
        ];
        // 记录错误日志
        return null;
    }
}
Nach dem Login kopieren

Dieser Artikel basiert auf Nachdruck, die Originaladresse lautet:

https://tsmliyun.github.io/php/PHP%E7%9A%84CURL%E5%8A%9F%E8%83%BD%E6% 89%A9%E5%B1%95%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95/

Empfohlen: PHP-Video Tutorial

Das obige ist der detaillierte Inhalt vonGrundlegende Verwendung der Curl-Funktionserweiterung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:github.io
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage