2014-12-22 88 views
0

我在PHP中使用cURL連接到不同的API,我知道使用SPDY來自Google的新協議。PHP中的CURL是否支持SPDY?

但我不確定是否默認PHP cURL支持SPDY。如果它不是有辦法配置它,以便它支持SPDY?

+2

HTTP: //php.net/manual/en/intro.curl.php有一個支持的proto列表COLS。由於'libcurl'目前還不支持SPDY,所以無法添加它。 –

+0

那麼糟透了。它會很快得到支持嗎? – jnbdz

+1

支持計劃 - https://github.com/bagder/curl/blob/master/docs/ROADMAP.md - 但沒有時間表。 –

回答

0

在我的系統上使用PHP 5.5.19和curl 7.39.0,答案是否定的。 你可以通過啓用「自動」編碼來檢查你的curl支持,使curl列出所有支持的編碼到服務器(通過CURLOPT_ENCODING->空字符串自動啓用),然後檢查curl發送的標題,如下所示:

<?php 
    if(array_key_exists("curlcall",$_GET)){ 
    if(is_callable("http_get_request_headers")){ 
    var_dump(http_get_request_headers());  
    }elseif(is_callable("apache_request_headers")){ 
     var_dump(apache_request_headers()); 
    } else { 
     throw new Exception("unsupported enviroment (both http_get_request_headers and apache_request_headers missing!)"); 
    } 
    } else { 
    $ch=curl_init("http://127.0.0.1/a.php?curlcall"); 
    curl_setopt($ch,CURLOPT_ENCODING,""); 
    curl_exec($ch); 
    } 

我的系統上,我得到這個輸出:即緊縮和gzip

array(3) { ["Host"]=> string(9) "127.0.0.1" ["Accept"]=> string(3) "*/*" 
["Accept-Encoding"]=> string(13) "deflate, gzip" } 

意義(和默認的 - 沒有編碼/平)支持(不SPDY的支持還沒有即時畏懼)