用curl

主要從事網(wǎng)頁設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、響應(yīng)式網(wǎng)站建設(shè)、程序開發(fā)、微網(wǎng)站、小程序制作等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)絡(luò)營銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計(jì)、營銷、管理等多方位專業(yè)化運(yùn)作于一體,具備承接不同規(guī)模與類型的建設(shè)項(xiàng)目的能力。
GET方法:
??//初始化
$ch?=?curl_init();
//設(shè)置選項(xiàng),包括URL
curl_setopt($ch,?CURLOPT_URL,?"");
curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1);
curl_setopt($ch,?CURLOPT_HEADER,?0);
//執(zhí)行并獲取HTML文檔內(nèi)容
$output?=?curl_exec($ch);
//釋放curl句柄
curl_close($ch);
//打印獲得的數(shù)據(jù)
print_r($output);
POST方法:
$url?=?"";
$post_data?=?array?("username"?=?"bob","key"?=?"12345");
$ch?=?curl_init();
curl_setopt($ch,?CURLOPT_URL,?$url);
curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1);
//?post數(shù)據(jù)
curl_setopt($ch,?CURLOPT_POST,?1);
//?post的變量
curl_setopt($ch,?CURLOPT_POSTFIELDS,?$post_data);
$output?=?curl_exec($ch);
curl_close($ch);
//打印獲得的數(shù)據(jù)
print_r($output);
這個(gè)需要配合js,打開一個(gè)html頁面,首先js用ajax請求頁面,返回第一個(gè)頁面信息確定處理完畢(ajax有強(qiáng)制同步功能),ajax再訪問第二個(gè)頁面。(或者根據(jù)服務(wù)器狀況,你可以同時(shí)提交幾個(gè)URL,跑幾個(gè)相同的頁面)
參數(shù)可以由js產(chǎn)生并傳遞url,php后臺頁面根據(jù)URL抓頁面。然后ajax通過php,在數(shù)據(jù)庫或者是哪里設(shè)一個(gè)標(biāo)量,標(biāo)明檢測到哪里。由于前臺的html頁面執(zhí)行多少時(shí)候都沒問題,這樣php的內(nèi)存限制和執(zhí)行時(shí)間限制就解決了。
因?yàn)椴粫速M(fèi)大量的資源用一個(gè)頁面來跑一個(gè)瞬間500次的for循環(huán)了。(你的500次for循環(huán)死了原因可能是獲取的數(shù)據(jù)太多,大過了php限制的內(nèi)存)
不過印象中curl好像也有強(qiáng)制同步的選項(xiàng),就是等待一個(gè)抓取后再執(zhí)行下一步。但是這個(gè)500次都是用一個(gè)頁面線程處理,也就是說肯定會遠(yuǎn)遠(yuǎn)大于30秒的默認(rèn)執(zhí)行時(shí)間。
可以。
CURLOPT_PROTOCOLS
CURLPROTO_* 的位域指。如果被啟用,位域值會限定libcurl在傳輸過程中有哪些可使用的協(xié)議。這將允許你在編譯libcurl時(shí)支持眾多協(xié)議,但是限制只是用它們中被允許使用的一個(gè)子集。默認(rèn)libcurl將會使用全部它支持的協(xié)議。參見 CURLOPT_REDIR_PROTOCOLS .
可用的協(xié)議選項(xiàng)為:CURLPROTO_HTTP、CURLPROTO_HTTPS、CURLPROTO_FTP、CURLPROTO_FTPS、CURLPROTO_SCP、CURLPROTO_SFTP、CURLPROTO_TELNET、CURLPROTO_LDAP、CURLPROTO_LDAPS、CURLPROTO_DICT、CURLPROTO_FILE、CURLPROTO_TFTP、CURLPROTO_ALL
對了,可定能得到返回值
本文實(shí)例講述了php使用CURL模擬GET與POST向微信接口提交及獲取數(shù)據(jù)的方法。分享給大家供大家參考,具體如下:
php CURL函數(shù)可以模仿用戶進(jìn)行一些操作,如我們可以模仿用戶提交數(shù)據(jù)也可以模仿用戶進(jìn)行網(wǎng)站訪問了,下面我們來介紹利用CURL模擬進(jìn)行微信接口的GET與POST例子,例子非常的簡單就兩個(gè):
Get提交獲取數(shù)據(jù)
/**
* @desc 獲取access_token
* @return String access_token
*/
function getAccessToken(){
$AppId = '1232assad13213123';
$AppSecret = '2312312321adss3123213';
$getUrl = 'htq.com/cgi-bin/token?grant_type=client_credentialappid='.$AppId.'secret='.$AppSecret;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $getUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURL_SSLVERSION_SSL, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$data = curl_exec($ch);
$response = json_decode($data);
return $response-access_token;
}
post提交獲取數(shù)據(jù)
/**
* @desc 實(shí)現(xiàn)天氣內(nèi)容回復(fù)
*/
public function testWeixin(){
$access_token = $this-getAccessToken();
$customMessageSendUrl = 'ht.qq.com/cgi-bin/message/custom/send?access_token='.$access_token;
$description = '今天天氣的詳細(xì)信息(從第三方獲取)。';
$url = ttpr.com/';
$picurl = 'her.com/';
$postDataArr = array(
'touser'='OPENID',
'msgtype'='news',
'news'=array(
'articles'=array(
'title'='當(dāng)天天氣',
'description'=$description,
'url'=$url,
'picurl'=$picurl,
),
),
);
$postJosnData = json_encode($postDataArr);
$ch = curl_init($customMessageSendUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postJosnData);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$data = curl_exec($ch);
var_dump($data);
}
例子相對來說比較簡單也沒有什么好詳細(xì)分析的了,大家照抄就可以實(shí)現(xiàn)我們想要的功能了.
可以模擬登錄微信公眾平臺,curl一般都用post方式
也可以用httpclient這個(gè)類進(jìn)行模擬
這是一個(gè)跨域訪問問題,以前這種問題是比較復(fù)雜的。不過隨著XML josn等等數(shù)據(jù)結(jié)構(gòu)的應(yīng)用
現(xiàn)在還是很好解決的 而且你的要求也不高 只是一個(gè)返回值的話 都用不到數(shù)據(jù)結(jié)構(gòu)了 直接頁面輸出就好了
我寫了兩個(gè)簡單的文件給你 里面的域名和文件名參數(shù) 你都可以自己調(diào)整 我測試是沒問題的
//test.php
?php
$ch = curl_init();
$str ='';
curl_setopt($ch, CURLOPT_URL, $str);
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec($ch);
var_dump( $output );
?
//頁面輸出結(jié)果 string(2) "10"
//form.php 文件內(nèi)容如下
?php
$id = $_GET['id'];
echo $id;
?
本文題目:php模擬get請求數(shù)據(jù),php接收get
標(biāo)題網(wǎng)址:http://chinadenli.net/article38/dsgsepp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、小程序開發(fā)、網(wǎng)站建設(shè)、外貿(mào)建站、服務(wù)器托管、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)