PHP 舊版或 CURL、SSL 等等太舊,可能會不支援 HTTP/2,要如何確認自己目前環境有支援 HTTP/2 呢?
PHP 測試 CURL 是否支援 HTTP 2
可以使用這隻程式來確認,執行此程式,出現 HTTP/2 support 就是支援,不然就不支援囉~
<?php
if (defined("CURL_VERSION_HTTP2") && (curl_version()["features"] & CURL_VERSION_HTTP2) !== 0) {
$url = 'https://www.google.com/';
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_HEADER => true,
CURLOPT_NOBODY => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_2_0,
]);
$response = curl_exec($ch);
if ($response !== false && str_starts_with($response, 'HTTP/2'))
echo "HTTP/2 support!";
elseif ($response !== false)
echo "No HTTP/2 support on server.";
else
echo curl_error($ch);
curl_close($ch);
} else {
echo "No HTTP/2 support on client.";
}
?>