導航:首頁 > 編程語言 > phpcurl模擬get請求

phpcurl模擬get請求

發布時間:2022-08-22 21:03:38

⑴ 請教php curl模擬get請求與直接在瀏覽器訪問網址有什麼區別

curl方式你可以認為是服務端的ajax請求,服務端可以獲取curl的結果,然後處理自己的業務,至於直接在瀏覽器訪問,就不用說了,直接顯示出請求的結果

⑵ PHP curl模擬POST問題,為什麼明明是模擬的是POST,firebug仍顯示GET

firebug查看的是你通過瀏覽器發出的請求, curl是php做的,它是看不到的
你就把curl當成一個瀏覽器就行了

你可以在curl的接收端列印$_SERVER['REQUEST_METHOD']
或者用fidder抓包工具看下就看到了

⑶ php中怎樣用curl來模擬頁面中點擊第二頁的按鈕發送請求

int main()
{
int m, n;
while (cin >> n >> m)
{
UFSet uset(100000);
uset.makeSet(n);//初始化
//接收m對關系
int x = 0, y = 0;
for (int i = 0; i<m; i++)
{
cin >> x >> y;//註:這里數組下標代表人的對應編號
uset.unionSet(x, y);
}
cout << uset.getSets(n) << endl;

}
return 0;
}

⑷ php模擬get和post的幾種方法

方法一:
[php]viewplain
$re=file_get_contents($url);
print_r($re);

方法二:
[php]viewplain
$ch=curl_init("http://www.jb51.net/");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);
$output=curl_exec($ch);
$fh=fopen("out.html",'w');
fwrite($fh,$output);
fclose($fh);

方法三:
其中把post一塊包含進來了
[php]viewplain
functiondfopen($url,$limit=0,$post='',$cookie='',$bysocket=FALSE,$ip='',$timeout=15,$block=TRUE,$encodetype='URLENCODE'){
$return='';
$matches=parse_url($url);
$host=$matches['host'];
$path=$matches['path']?$matches['path'].($matches['query']?'?'.$matches['query']:''):'/';
$port=!empty($matches['port'])?$matches['port']:80;

if($post){
$out="POST$pathHTTP/1.0 ";
$out.="Accept:*/* ";
$out.="Accept-Language:zh-cn ";
$boundary=$encodetype=='URLENCODE'?'':';'.substr($post,0,trim(strpos($post," ")));
$out.=$encodetype=='URLENCODE'?"Content-Type:application/x-www-form-urlencoded ":"Content-Type:multipart/form-data$boundary ";
$out.="User-Agent:$_SERVER[HTTP_USER_AGENT] ";
$out.="Host:$host ";
$out.='Content-Length:'.strlen($post)." ";
$out.="Connection:Close ";
$out.="Cache-Control:no-cache ";
$out.="Cookie:$cookie ";
$out.=$post;
}else{
$out="GET$pathHTTP/1.0 ";
$out.="Accept:*/* ";
$out.="Accept-Language:zh-cn ";
$out.="User-Agent:$_SERVER[HTTP_USER_AGENT] ";
$out.="Host:$host ";
$out.="Connection:Close ";
$out.="Cookie:$cookie ";
}
$fp=@fsockopen(($ip?$ip:$host),$port,$errno,$errstr,$timeout);
if(!$fp){
return'';
}else{
stream_set_blocking($fp,$block);
stream_set_timeout($fp,$timeout);
@fwrite($fp,$out);
$status=stream_get_meta_data($fp);
if(!$status['timed_out']){
while(!feof($fp)){
if(($header=@fgets($fp))&&($header==" "||$header==" ")){
break;
}
}
$stop=false;
while(!feof($fp)&&!$stop){
$data=fread($fp,($limit==0||$limit>8192?8192:$limit));
$return.=$data;
if($limit){
$limit-=strlen($data);
$stop=$limit<=0;
}
}
}
@fclose($fp);
return$return;
}
}

⑸ 對於https協議的網站,可以用php 的curl來模擬get請求和post請求嗎,能得到返回值嗎

可以。
CURLOPT_PROTOCOLS
CURLPROTO_* 的位域指。如果被啟用,位域值會限定libcurl在傳輸過程中有哪些可使用的協議。這將允許你在編譯libcurl時支持眾多協議,但是限制只是用它們中被允許使用的一個子集。默認libcurl將會使用全部它支持的協議。參見 CURLOPT_REDIR_PROTOCOLS .
可用的協議選項為: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

對了,可定能得到返回值

⑹ php curl get 參數

$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, $url);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
$ret = curl_exec($cu);
curl_close($cu);
其中$url變數可以是完整的URL+參數

⑺ PHP curl get cookies

跟GET/POST沒啥關系,直接用
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
存儲提交後得到的cookie數據即可

更多PHPcURL的內容,請參考我的博客《PHPcURL實現模擬登錄與採集使用方法詳解教程》

⑻ 微信公眾平台的開發能否用php 的curl進行模擬get提交

可以模擬登錄微信公眾平台,curl一般都用post方式
也可以用httpclient這個類進行模擬

⑼ php curl如何直接轉發當前php接收的headersget請求如何直接轉發get參數post請求如何直接轉發post參數

本文實例講述了php使用CURL模擬GET與POST向微信介面提交及獲取數據的方法。分享給大家供大家參考,具體如下:
php CURL函數可以模仿用戶進行一些操作,如我們可以模仿用戶提交數據也可以模仿用戶進行網站訪問了,下面我們來介紹利用CURL模擬進行微信介面的GET與POST例子,例子非常的簡單就兩個:
Get提交獲取數據
/**
* @desc 獲取access_token
* @return String access_token
*/
function getAccessToken(){
$AppId = '1232assad13213123';
$AppSecret = '2312312321adss3123213';
$getUrl = 'htq.com/cgi-bin/token?grant_type=client_credential&appid='.$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提交獲取數據
/**
* @desc 實現天氣內容回復
*/
public function testWeixin(){
$access_token = $this->getAccessToken();
$customMessageSendUrl = 'ht.qq.com/cgi-bin/message/custom/send?access_token='.$access_token;
$description = '今天天氣的詳細信息(從第三方獲取)。';
$url = ttpr.com/';
$picurl = 'her.com/';
$postDataArr = array(
'touser'=>'OPENID',
'msgtype'=>'news',
'news'=>array(
'articles'=>array(
'title'=>'當天天氣',
'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_mp($data);
}

例子相對來說比較簡單也沒有什麼好詳細分析的了,大家照抄就可以實現我們想要的功能了.

⑽ 如何通過php的curl模擬ajax請求,獲取其返回值

這個需要配合js,打開一個html頁面,首先js用ajax請求頁面,返回第一個頁面信息確定處理完畢(ajax有強制同步功能),ajax再訪問第二個頁面。(或者根據伺服器狀況,你可以同時提交幾個URL,跑幾個相同的頁面)
參數可以由js產生並傳遞url,php後台頁面根據URL抓頁面。然後ajax通過php,在資料庫或者是哪裡設一個標量,標明檢測到哪裡。由於前台的html頁面執行多少時候都沒問題,這樣php的內存限制和執行時間限制就解決了。
因為不會浪費大量的資源用一個頁面來跑一個瞬間500次的for循環了。(你的500次for循環死了原因可能是獲取的數據太多,大過了php限制的內存)
不過印象中curl好像也有強制同步的選項,就是等待一個抓取後再執行下一步。但是這個500次都是用一個頁面線程處理,也就是說肯定會遠遠大於30秒的默認執行時間。

閱讀全文

與phpcurl模擬get請求相關的資料

熱點內容
愛上北斗星男友在哪個app上看 瀏覽:413
主力散戶派發源碼 瀏覽:663
linux如何修復伺服器時間 瀏覽:55
榮縣優途網約車app叫什麼 瀏覽:472
百姓網app截圖是什麼意思 瀏覽:222
php如何嵌入html 瀏覽:809
解壓專家怎麼傳輸 瀏覽:743
如何共享伺服器的網路連接 瀏覽:132
程序員簡易表白代碼 瀏覽:166
什麼是無線加密狗 瀏覽:62
國家反詐中心app為什麼會彈出 瀏覽:67
cad壓縮圖列印 瀏覽:102
網頁打開速度與伺服器有什麼關系 瀏覽:863
android開發技術文檔 瀏覽:65
32單片機寫程序 瀏覽:50
三星雙清無命令 瀏覽:838
漢壽小程序源碼 瀏覽:344
易助erp雲伺服器 瀏覽:532
修改本地賬戶管理員文件夾 瀏覽:419
python爬蟲工程師招聘 瀏覽:285