PHP的三種HTTP請求

2021-08-25 23:56:13 字數 3546 閱讀 5752

方法一:利用php的socket程式設計來直接給介面傳送資料來模擬post的操作。

建立兩個檔案post.php,getpost.php

post.php內容如下:

<?php

$flag = 0;

$post

= '';

$errno = '';

$errstr = '';

//要post的資料

$argv = array(

'var1'=>'abc',

'var2'=>'how are you , my friend??'

);//構造要post的字串

foreach ($argv as $key=>$value)

$post

.= $key."="; $

post

.= urlencode($value);

$flag = 1;

}$length = strlen($

post

post

."\r\n";

//傳送post的資料

fputs($fp,$header);

$inheader = 1;

while (!feof($fp))

if ($inheader == 0)

}fclose($fp);

?>

getpost.php的內容如下

<?php

echo "this is the data posted";

echo "

";

print_r($_request);

echo "

";

?>

結果輸出:

this is the data posted

array(

[var1] => abc

[var2] => how are you , my friend??)

方法二:

使用php的curl擴充套件或httpclient.class.php類,這兩個非常類似,下面簡單的列出curl的實現**。

兩個檔案post2.php和getpost2.php

post2.php的內容如下:

curl_setopt($ch, curlopt_returntransfer, 1);//不直接輸出,返回到變數

$curl_result = curl_exec($ch);

$result = explode(',', $curl_result);

curl_close($ch);

print_r($result);

?>

getpost2.php的內容如下:

<?php

echo "returndata

";echo "

";

print_r($_request);

echo "

";

?>

結果輸出:

方法三:這個要借助第三方類庫httpclient

?>補充:

前3個算是比較完整的類,所以後面的暫時不考慮了。

庫的選擇一般原則是找用的人多,更新持久的,因此 pear::http_client 一馬當先,但這個必須是統籌在pear之下,因為要用到一些pear的輔助類,不是很適合單獨使用,請回去等錄用通知吧。這回合snoopy 領先一步,但粗略一看核心檔案snoopy.class.php 體重38kb,再看 httpclient 感覺是相當苗條了,核心檔案 httpclient.class.php 占地12kb,這回合 httpclient 也得一分,不過最後更新日期讓人看得心寒。

人氣測試(pear::http_client友情出場):

1.google trends

結果:放棄。

因為 snoopy 在某個世界實在太有名氣了,而且"http client" 關鍵字也太含糊。

2.google code search

規則:php + 包含類名的一行並用雙引號括起來

pear::http_client 12 (還是請繼續回去等通知吧)

... "&btng=search

核心pk:

一般來說,php 的http client都是通過php_curl或者php_socket來實現的,所以這局應該又是平手。

功能pk:

一般來說功能與體重成正比,所以 snoopy 的給人的第一印象還是很令人得期待的。(考察未完成)

PHP的三種HTTP請求

方法一 利用php的socket程式設計來直接給介面傳送資料來模擬post的操作。建立兩個檔案post.php,getpost.php post.php內容如下 flag 0 post errno errstr 要post的資料 argv array var1 abc var2 how are yo...

php傳送post請求的三種方法

引用 傳送post請求 param string url 請求位址 param array post data post鍵值對資料 return string function send post url,post data 使用方法,需要2個引數,url和引數,post的引數得自己構造,是陣列的格...

PHP的三種迴圈

while 只要條件為真就迴圈 for 提前知道迴圈的次數 foreach 用來迴圈陣列,指標控制 和while for控制迴圈次數的條件不同 當物件被foreach的時候,內部的valid,current,key方法會依次被呼叫,其返回的值便是foreach語句的key和value。當一次迴圈體結...