|
三個(gè)函數(shù)雖然都是讀取資源的函數(shù),但各自的應(yīng)用場(chǎng)景不同。
curl多用于互聯(lián)網(wǎng)網(wǎng)頁(yè)之間的抓取,fopen多用于讀取文件,而file_get_contents多用于獲取靜態(tài)頁(yè)面的內(nèi)容。
1. fopen /file_get_contents 每次請(qǐng)求都會(huì)重新做DNS查詢,并不對(duì)DNS信息進(jìn)行緩存。但是CURL會(huì)自動(dòng)對(duì)DNS信息進(jìn)行緩存。對(duì)同一域名下的網(wǎng)頁(yè)或者圖片的請(qǐng)求只需要一次DNS查詢。這大大減少了DNS查詢的次數(shù)。所以CURL的性能比f(wàn)open /file_get_contents 好很多。
2. fopen /file_get_contents在請(qǐng)求HTTP時(shí),使用的是http_fopen_wrapper,不會(huì)keeplive。而curl卻可以。這樣在多次請(qǐng)求多個(gè)鏈接時(shí),curl效率會(huì)好一些。
3. curl可以模擬多種請(qǐng)求,例如:POST數(shù)據(jù),表單提交等,用戶可以按照自己的需求來(lái)定制請(qǐng)求。而fopen / file_get_contents只能使用get方式獲取數(shù)據(jù)。
php技術(shù):php中file_get_content 和curl以及fopen 效率分析,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。