簡體   English   中英

PHP比cURL快?

[英]PHP faster than cURL?

獲取http狀態代碼的最快方法是什么。 我有一個大約10k URL的列表要檢查。 在最好的情況下,它每15分鍾檢查一次。 所以我有一個php腳本,它使用簡單的curl函數並循環遍歷它們。 但這需要花費太多時間。 有什么建議我可以做些什么來改善它? 如何對多個網址進行並行檢查? 有多少人可以管理? 我對這整個表演事物都很陌生。

這就是我所擁有的:

public function getHttpStatus(array $list) {
    $list = array(…); // Array contains 10k+ urls from database.
    for($i = 0; $i < count($list); $i++) {
            $ch = $list[$i];
        curl_setopt($ch, CURLOPT_NOBODY, 1); 
        curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE); 
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($ch, CURLOPT_MAXREDIRS, 5);

        $c = curl_exec($ch); 
        $info = curl_getinfo($ch);
        echo $info['http_code'] . '<br />';
    }
}

提前致謝!

您可以考慮使用curl_multi_exec() - http://php.net/manual/en/function.curl-multi-exec.php ,它允許您並行處理多個卷曲句柄。 如果您願意,可以使用我編寫的非常輕量級的REST客戶端來支持curl_multi_exec() 鏈接在這里:

https://github.com/mikecbrant/php-rest-client

現在,我沒有設置此庫來處理HEAD請求,如果您只查找響應代碼,這實際上比GET請求更有效。 但是這應該相對容易修改以支持這樣的用例。

至少這個REST客戶端庫可以為您提供有關如何使用curl_multi_exec()良好示例代碼

顯然,您需要根據可用硬件和要求處理的服務可以處理的並發請求數量來處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM