php傳送http請求,獲取網頁內容方法:curl、file_get_contents()、fopen()
區別:1. 相較於file_get_contents()、fopen(),curl支援更多功能
curl支援更多協議,目前支援http、https、ftp、gopher、telnet、dict、file、idap協議,同時也支援https認證、http post、http put、ftp上傳(這個也能通過php的ftp擴充套件完成)、http基於表單的上傳、**、cookies和使用者名稱+密碼的認證。php中使用curl實現get和post請求的方法。
2. 相較於file_get_contents()、fopen(),curl效能更高
curl效能更高的原因在於:file_get_contents()、fopen()每次請求都會重新做dns查詢,並不會對dns資訊進行快取;curl會自動對dns資訊進行快取,同一網域名稱下的網頁或的請求只需要一次dns查詢,大大減少對dns查詢的次數。
3. get請求時,相較於curl,file_get_contents()、fopen()設定更簡單,**量少,file_get_contents()**量最少
file_get_contents()、fopen()預設使用get請求方式,如果需要使用post方式,可以使用stream_context_create()進行設定。
4. file_get_contents()、fopen()常用於讀取檔案內容
file_get_contents()把整個檔案讀入到乙個字串中,把檔案內容讀入到乙個字串中的首選方法。fopen()是開啟檔案,可設定不同的開啟規則,然後對檔案進行讀取等操作
一般情況下,常使用curl傳送http請求,對於效能要求不高,簡單的get請求,使用file_get_contents()、fopen()就更為簡潔、**量少。
一、curl使用示例
<?php
//請求引數
$params
=array
('aa'
=>
'123'
,'bb'
=>
'456');
//初始化curl
$ch=
curl_init()
;//設定相應的會話選項
curl_setopt
($ch
,curlopt_url
,"");
//設定curl位址
curl_setopt
($ch
,curlopt_post,1
);//設定curl傳送方式
curl_setopt
($ch
,curlopt_postfields
,$params);
//設定curl傳送資料
curl_setopt
($ch
,curlopt_returntransfer,1
);//設定提交成功後,把資料返回為字串
//執行傳送
$output
=curl_exec
($ch);
//關閉curl資源,並且釋放系統資源
curl_close
($ch);
echo
$output
;?>
二、file_get_contents()使用示例
get請求:
<?php
$fh=
file_get_contents
('');
echo
$fh;
?>
post請求,需用stream_context_create()進行設定:
<?php
//請求引數
$params
=array
('aa'
=>
'123』,
'bb' => '
456'
);//將引數陣列拼接成字串
'timeout' => 60 //超時時間(單位:s)
;?>
三、fopen()使用示例<?php
$fh=
fopen
('','r');
if($fh)
}?>
PHP 傳送HTTP請求
file get contents版本 傳送post請求 param string url 請求位址 param array post data post鍵值對資料 return string function send post url,post data 使用如下 post data array...
C 請求http向網頁傳送資料,網頁接收
首先,我們需要的是什麼東西?用post方式請求http,給網頁傳輸資料,網頁接收到資料之後,把資料儲存到資料庫中。1.首先請求http,建立連線,把轉碼過的資料傳輸過去 2.網頁接收資料,在轉碼之後儲存到資料庫 3.網頁返回乙個東西給傳輸方,表示我們已經接收到資料了 同樣,我們請求http也是用的控...
php獲取http請求原文
可以從超級變數 server中獲得,三個變數的值如下 server request method server request uri server server protocol r n php有個內建函式getallheader 是apache request headers 函式的乙個別名,可...