[最佳化效能]求高手精簡curl的使用配置
我有個curl程式,由於是curl到國外某台web service上面,由於操作時間過長,有時候可能需要10秒左右才能完成,我在想能否將curl裡的代碼精簡一下?不必要的去掉。
但是我又不敢亂減,先貼一下我的curl的代碼,有沒有高手幫忙看看哪幾行代碼可以去掉不影響使用的?
PHP code
#POST方法 $curl = curl_init($url); curl_setopt( $curl, CURLOPT_POST, 1 ); curl_setopt( $curl, CURLOPT_POSTFIELDS, $data ); curl_setopt( $curl, CURLOPT_HEADER, 0 ); curl_setopt( $curl, CURLOPT_RETURNTRANSFER , 1 ); $response = curl_exec($curl); #GET方法 $curl = curl_init($url); curl_setopt( $curl, CURLOPT_GET, 1 ); curl_setopt( $curl, CURLOPT_GETFIELDS); curl_setopt( $curl, CURLOPT_HEADER, 0 ); curl_setopt( $curl, CURLOPT_RETURNTRANSFER , 1 ); $response = curl_exec($curl);
------解決方案--------------------
lz代碼已經夠精簡了,效率問題可能出現在網路或者io上
------解決方案--------------------
我認為你的問題不是精簡,而是要加點什麼
比如
CURLOPT_USERAGENT
CURLOPT_REFERER
這樣才能讓對方認為你是一個合法的瀏覽者,而積極為你服務
------解決方案--------------------
curl_setopt( $curl, CURLOPT_RETURNTRANSFER , 1 );也可以去掉?這個看你具體需要做什麼。有的可能有用,有的可能沒用
------解決方案--------------------
CURLOPT_HEADERTRUE to include the header in the output.
CURLOPT_RETURNTRANSFERTRUE to return the transfer as a string of the return value of curl_exec() instead of outputting it out directly.
這兩個參數是對整個請求的影響是0,只是是否自動輸出到標準輸出的意思。樓主的代碼沒有可以精簡的了。
網速慢是沒有辦法解決的,路過。
------解決方案--------------------
加上下面兩個,或許可以加速
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: www.domain.com'));//設定http header。www.domain.com為被你抓取的網站網域名稱。
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");//類比瀏覽器
------解決方案--------------------
在美國租個空間來curl美國的內容才是解決問題的根本.就算香港的主機訪問美國也要比大陸強多了.
各種關鍵詞過濾,不慢都慢了.