:修改php.ini檔案的設定,找到php_curl.dll
//取消下在的注釋# wgetextension=php_curl.dll
# tar zxvf curl-7.17.1.tar.gz //解壓
#cd curl-7.17.1
# ./configure --prefix=/usr/local/curl
# make
# make install
這是安裝php之前安裝的方法.
***************************phpinf檢視是否載入成功!
用curl 寫了飛信介面吧,網上有很多,這裡只是做個測試
$username = 13800138000;
$password = 123456;
$sendto = 13912345678;
$message = "測試乙個試試看!";
$curlpost = 'username='.urlencode($username).'&password='.urlencode($password).'&sendto='.urlencode($sendto).'&message='.urlencode($message).'';
$ch = curl_init();//初始化curl
curl_setopt($ch,curlopt_url,'');//抓取指定網頁
curl_setopt($ch, curlopt_header, 0);//設定header
curl_setopt($ch, curlopt_returntransfer, 1);//要求結果為字串且輸出到螢幕上
curl_setopt($ch, curlopt_post, 1);//post提交方式
curl_setopt($ch, curlopt_postfields, $curlpost);
$data = curl_exec($ch);//執行curl
curl_close($ch);
print_r($data);//輸出結果
返回的結果是:簡訊已提交到傳送佇列!
飛信介面的位址是
飛信介面模式:
?username=您的移動飛信登入手機號
&password=您的移動飛信登入密碼
&sendto=接收簡訊的飛信好友手機號
&message=簡訊內容
格式:?username=13800138000&password=123456&sendto=13912345678&message=簡訊內容
注意要保持utf-8格式的,這點我犯錯了
乙個最要的curl函式:curl_getinfo
curl_getinfo( resource
$ch [, int
$opt
= 0 ] )
<?php
/*curl例項
*/$curl = curl_init();
// 設定你需要抓取的url
curl_setopt($curl, curlopt_url, '');
// 設定header
curl_setopt($curl, curlopt_header, 0);
// 設定curl 引數,要求結果儲存到字串中還是輸出到螢幕上。
curl_setopt($curl, curlopt_returntransfer, 1);
// 執行curl,請求網頁
$data = curl_exec($curl);
if($data === false)
$info = curl_getinfo($curl);
// 關閉url請求
curl_close($curl);
// 顯示獲得的資料
var_dump($info);
var_dump($data);
可以返回:curl一般用來抓取網頁,第二種就是get或者post資料,第三種應用就是實現php的多執行緒任務
下面來實現多執行緒的
<?php
/*curl 多執行緒抓取
*/ /**
* curl 多執行緒
* * @param array $array 並行**
* @param int $timeout 超時時間
//防止死迴圈耗死cpu 這段是根據網上的寫法
do while ($mrc == curlm_call_multi_perform);//當正在接受資料時
while ($active and $mrc == curlm_ok) while ($mrc == curlm_call_multi_perform);
}}
foreach ($array as $k => $url)
curl_multi_close($mh);
$endtime = getmicrotime();
$diff_time = $endtime - $startime;
return array('diff_time'=>$diff_time,
'return'=>$res,
'header'=>$header );}
//計算當前時間
function getmicrotime()
//測試一下,curl 三個**
$array = array(
"","",
"");
$data = curl_http($array,'10');//呼叫
var_dump($data);//輸出
?>
因為$active要等全部url資料接受完畢才變成false,所以這裡用到了curl_multi_exec的返回值判斷是否還有資料,
當有數 據的時候就不停呼叫curl_multi_exec,暫時沒有資料就進入select階段,新資料一來就可以被喚醒繼續執行。
這裡的好處就是cpu的無謂 消耗沒有了。更詳細的說明:
這個多執行緒的寫法步驟:
第一步:呼叫curl_multi_init
第二步:迴圈呼叫curl_multi_add_handle
這一步需要注意的是,curl_multi_add_handle的第二個引數是由curl_init而來的子handle。
第三步:持續呼叫curl_multi_exec
第四步:根據需要迴圈呼叫curl_multi_getcontent獲取結果
第五步:呼叫curl_multi_remove_handle,並為每個字handle呼叫curl_close
第六步:呼叫curl_multi_close
linux命令下的curl
幾種常見的使用方式:
curl應用總結(三)
2 curlcode curl easy setopt curl handle,curloption option,parameter 所有引數和選項設定都是通過這個函式完成的,它告訴libcurl怎樣去進行傳輸。引數handle即為curl easy init 返回的控制代碼,後面根據option...
cURL工具及其應用
curl是利用url語法規定傳輸檔案和資料的工具,支援很多協議,如 http ftp telnet等。curl是乙個通用的庫,並非php獨有。其實,很多功能用file socket系列函式也可以實現,只不過用curl功能更全面,可將複雜的操作簡單化,比如處理cookie 表單提交 檔案上傳等。在ph...
file get content和curl的區別
一 file get contents 1.定義 file get contents 函式將指定 url 的檔案讀入乙個字串並返回。2.語法 file get contents path,include path,context,start,max length path 要讀取的路徑或鏈結。inc...