PHP之curl
?當(dāng)我第一次接觸curl的時候,看文檔,以及網(wǎng)上search各種資料,官方(http://cn2.php.net/manual/en/intro.curl.php)的解釋是,這是某大牛寫的一個libcurl庫,PHP支持該擴(kuò)展庫,允許我們以各種不同的協(xié)議(http、https、ftp、telnet、file...)訪問各種不同的服務(wù)器,支持post、put、ftp或基于表單的文件上傳,支持cookie、代理等等。?
? ? ?好像還是似懂非懂,我覺得最簡單的解釋是,curl是一個工具集,由libcurl擴(kuò)展庫支持,包含一些函數(shù),使用這些函數(shù)可以模擬我們來訪問某些地址,也就是,我們手動在瀏覽器地址欄里面輸入http://www.baidu.com,來訪問百度,curl就可以代替這種手動操作,以程序的形式來實(shí)現(xiàn)這一過程,這個操作、過程得到的結(jié)果,是瀏覽器給了我們一個百度搜索的首頁。
?
? ? ?既然curl是一個工具集,有很多函數(shù)可供調(diào)用,可以想象成,在地址欄輸入URL(可能會帶一些參數(shù)),當(dāng)輸入完點(diǎn)擊回車的時候,相當(dāng)于調(diào)用了某些函數(shù),這些函數(shù)在百度某臺或某幾臺服務(wù)器上的腳本上寫著,函數(shù)運(yùn)行完后會有某種效果,比如返回了值,或者沒返回值,或者打印了一些東西,在這里呈現(xiàn)了一個頁面給你,而curl能實(shí)現(xiàn)的功能,比簡單展示一個頁面多得多,這些各自不同的功能是通過curl_setopt函數(shù)來實(shí)現(xiàn)的。比如在接SDK的時候,別人提供的是訪問地址形式的API,這時curl就大顯身手。
?
? ? ?1.get實(shí)現(xiàn)
?
復(fù)制代碼
? ? $url = 'http://www.somesite.com';
? ? $data = array('username'=>'Peter', 'password'=>12345);
? ? function get($url, $data = array()){
? ? ? ? $ch = curl_init(); ? // 初始化一個curl資源類型變量
? ? ? ??
? ? ? ? /*設(shè)置訪問的選項*/
? ? ? ? curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); ?// 啟用時會將服務(wù)器服務(wù)器返回的Location: 放在header中遞歸的返回給服務(wù)器
? ? ? ? curl_setopt($ch, CURLOPT_RETURNTRANSFER, true ); ?// 將獲得的數(shù)據(jù)返回而不是直接在頁面上輸出
? ? ? ? curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_HTTP ); ?// 設(shè)置訪問地址用的協(xié)議類型為HTTP ? ? ? ?
? ? ? ? curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); ?// 訪問的超時時間限制為15s
? ? ? ? $url = url.'?'.http_build_query($data); ?
? ? ? ? curl_setopt($ch, CURLOPT_URL, $url); ?// 設(shè)置即將訪問的URL
?
? ? ? ? $result = curl_exec($ch); ?// 執(zhí)行本次訪問,返回一個結(jié)果
? ? ? ? // ... ? ? ? ? ? ? ? ? ? ? // 針對結(jié)果的正確與否做一些操作
? ? ? ? return $result;
? ? }
? ? // $result = get(%url, $data); ?// 調(diào)用
復(fù)制代碼
? ? ? 2.post實(shí)現(xiàn)
?
復(fù)制代碼
? ? function post($url, $data = array()){
? ? ? ? $ch = curl_init();?
? ? ? ? ??
? ? ? ? curl_setopt($ch, CURLOPT_POST, true); ?// 設(shè)置為post傳遞形式
? ? ? ? curl_setopt($ch, CURLOPT_POSTFIELDS, $data); ?// 設(shè)置post傳遞的數(shù)據(jù)
? ? ? ? curl_setopt($ch, CURLOPT_URL, $url);
? ? ? ? curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); ?// 設(shè)置數(shù)據(jù)以文件流的形式返回
? ? ? ? curl_setopt($ch, CURLOPT_USERAGENT, ''); ?// 將用戶代理置空
? ? ? ? curl_setopt($ch, CURLOPT_HEADER, false); ?// 設(shè)置不顯示頭信息
? ? ? ? ??
? ? ? ? $result = curl_exec($ch);
? ? ? ? $info = curl_getinfo($ch); ? // 獲取本次訪問資源的相關(guān)信息
? ? ? ? ??
? ? ? ? return $result;
? ? } ??

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)