PHP中使用curl入門教程
概述
在我的上一篇文章“curl和libcurl簡介”中簡單的給大家介紹了curl相關(guān)的知識。這篇文章向大家介紹一下PHP中的curl擴展。
盡管在上一篇文章中,對curl和libcurl做了區(qū)分,也解釋了某些相關(guān)的概念。同時,也知道了PHP中的curl擴展其實是對libcurl的封裝。但是,在這篇文章中,為了寫起來方便,將不再對這兩個概念進行區(qū)分,因此文章接下來提到的curl其實是指libcurl,希望不會把大家繞糊涂。
關(guān)于PHP中curl擴展這里就不再過多介紹了,大家可以查下文檔。
安裝curl
關(guān)于curl的安裝,這里也不做過多的介紹。windows和linux都是一樣的流程,根據(jù)平臺選擇相應(yīng)的安裝方式,然后在php.ini文件中開啟curl擴展,與別的擴展的安裝都是一樣的。
PHP中使用curl的步驟
在PHP中,可以使用curl完成各種各樣的功能,如抓取網(wǎng)頁,文件的上傳/下載、模擬登錄等。但是這些功能的實現(xiàn)都是基于四個步驟完成的,所以curl的使用并不復(fù)雜。
使用curl時,主要分為以下四個步驟:
1.初始化一個curl實例—curl_init()
2.設(shè)置curl執(zhí)行時的相關(guān)選項—curl_setopt()
3.執(zhí)行curl查詢—curl_exec()
4.關(guān)閉curl—curl_close()
在這四個步驟中,1、3、4步都很容易。最麻煩的就是2步,這一步設(shè)置curl的選項,這里有100多個不同的選項,要完成不同的功能,就要對這些選項進行組合。
下面對這四個步驟做一下說明:
1.初始化一個curl實例,這一步使用函數(shù)curl_init(),查看一下PHP手冊,可以看到該函數(shù)的返回值是一個資源(resource)類型,我們需要使用一個變量來保存這個實例,因為后面的步驟都會用到這個實例。具體代碼示例:
$curl=curl_init(); //輸出resource(2, curl)
2.設(shè)置curl相關(guān)選項,設(shè)置curl選項使用函數(shù)curl_setopt()。該函數(shù)接受三個參數(shù):第一個參數(shù)就是要設(shè)置的curl的實例也就是第一步中的那個實例,第二個參數(shù)要設(shè)置的選項,是一個預(yù)定義的常量,具體都有哪些選項,大家可以在手冊里自行查閱。第三個參數(shù)是要設(shè)置的選項的具體值。
代碼示例:
curl_setopt ($curl, CURLOPT_URL, "http://www.php.net");
3.執(zhí)行curl查詢,這一步使用函數(shù)curl_exec()。該函數(shù)接受一個參數(shù),這個參數(shù)也是第1步中獲取的實例。
代碼示例:
curl_exec ($curl);
4.關(guān)閉當前curl,這一步使用函數(shù)curl_close()。該函數(shù)同樣也是接受第1步中獲取的curl實例作為參數(shù)。
代碼示例:
curl_close($curl);
在PHP中使用curl一般都遵循這四個步驟,其中主要是通過對2步的不同設(shè)置來完成不同的功能,所以第2步是最麻煩的,有的甚至需要大家用心理解。
一個簡單的curl代碼實例
前面給大家介紹了使用curl的四個步驟,這里給大家簡單演示一個抓取網(wǎng)頁內(nèi)容的實例,代碼很簡單,但是希望能幫助大家更好的理解curl。
抓取百度首頁內(nèi)容:
$curl=curl_init();
curl_setopt ($curl, CURLOPT_URL, "http://www.baidu.com");
$baidu=curl_exec($curl);
curl_close($curl);
運行這一段代碼,頁面將顯示百度首頁。
總結(jié)
截止到今天,寫了五六篇博客了。很想把自己學(xué)習(xí)的知識記錄下來,也很想跟大家分享,但是一直覺得自己的語言組織能力不是太好,不知道看到文章的人能不能看懂,希望以后在語言組織方面能不斷進步吧。
相關(guān)文章
PHP模板引擎Smarty內(nèi)置變量調(diào)解器用法詳解
這篇文章主要介紹了PHP模板引擎Smarty內(nèi)置變量調(diào)解器用法,結(jié)合實例形式詳細分析了Smarty中的常用內(nèi)置變量調(diào)節(jié)器定義與使用技巧,需要的朋友可以參考下2016-04-04關(guān)于Curl在Swoole協(xié)程中的解決方案詳析
這篇文章主要給大家介紹了關(guān)于Curl在Swoole協(xié)程中的解決方案,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Swoole具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09thinkPHP實現(xiàn)MemCache分布式緩存功能
這篇文章主要介紹了thinkPHP實現(xiàn)MemCache分布式緩存功能的方法,結(jié)合實例形式分析了thinkPHP通過修改CacheMemcache.class.php源文件實現(xiàn)分布式緩存功能的具體實現(xiàn)技巧,需要的朋友可以參考下2016-03-03解決Linux下php-fpm進程過多導(dǎo)致內(nèi)存耗盡問題
這篇文章主要介紹了解決Linux下php-fpm進程過多導(dǎo)致內(nèi)存耗盡問題,需要的朋友可以參考下2017-12-12