中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中如何發送http請求

發布時間:2021-08-31 15:02:10 來源:億速云 閱讀:152 作者:小新 欄目:開發技術

小編給大家分享一下php中如何發送http請求,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

具體如下:

http請求有get,post

php發送http請求有三種方式[我所知道的有三種,有其他的告訴我]。

1. file_get_contents();
2. curl發送請求。
3. fsocket發送。

下面說使用curl發送

首先環境需要配置好curl組件。

在windows中讓php支持curl比較簡單:

在php.ini中將extension=php_curl.dll前面的分號去掉,
有人說需要將php根目錄的libeay32.dll和ssleay32.dll需要拷貝到系統目錄下去。我實驗不拷貝也可以。
在linux中,如果使用源碼安裝,需要在make 之前,./configure --with-curl=path,
其中,path是你的 libcurl庫的位置,比如你安裝libcurl庫之后,
path可能就是/usr/local/,libcurl可以是靜態庫,也可以是動態庫。
注意libcurl庫configure的時候,可以將一些不需要的功能去掉,
比如ssl , ldap等。在php configure的時候,會去檢查libcurl中某些功能是否被開啟,進而去相應地調整生成的php

兩個使用curl發請求的例子。

// 初始化一個 cURL 對象
$curl = curl_init();
// 設置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL, 'https://www.jb51.net');
// 設置header 響應頭是否輸出
curl_setopt($curl, CURLOPT_HEADER, 1);
// 設置cURL 參數,要求結果保存到字符串中還是輸出到屏幕上。
// 1如果成功只將結果返回,不自動輸出任何內容。如果失敗返回FALSE
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);
// 運行cURL,請求網頁
$data = curl_exec($curl);
// 關閉URL請求
curl_close($curl);
// 顯示獲得的數據
print_r($data);

再一個post方式的例子:

//post方式
$phoneNumber ="13912345678";
$message = "testMessage";
$curlPost = "phone=".urlencode($phoneNumber)."&message=".$message;
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,'http://mytest/lab/t.php');
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
//設置是通過post還是get方法
curl_setopt($ch,CURLOPT_POST,1);
//傳遞的變量
curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);
$data = curl_exec($ch);
curl_close($ch);

在這個http://mytest/lab/t.php文件中:

if(!empty($_POST)){
 print_r($_POST);
}

就先寫這么多。

Fsocket:

$gurl = "http://mytest/lab/t.php?uu=gggggg";
//print_r(parse_url($gurl));
echo "以下是GET方式的響應內容:<br>";
sock_get($gurl);
function sock_get($url)
{
 $info = parse_url($url);
 $fp = fsockopen($info["host"], 80, $errno, $errstr, 3);
 $head = "GET ".$info['path']."?".$info["query"]." HTTP/1.0\r\n";
 $head .= "Host: ".$info['host']."\r\n";
 $head .= "\r\n";
 $write = fputs($fp, $head);
 while (!feof($fp)){
  $line = fgets($fp);
  echo $line."<br>";
 }
}
//fsocket模擬post提交
$purl = "http://mytest/lab/t.php";
echo "以下是POST方式的響應內容:<br>";
sock_post($purl,"uu=rrrrrrrrrrrr&&kk=mmmmmm");
function sock_post($url, $query)
{
 $info = parse_url($url);
 $fp = fsockopen($info["host"], 80, $errno, $errstr, 3);
 $head = "POST ".$info['path']." HTTP/1.0\r\n";
 $head .= "Host: ".$info['host']."\r\n";
 $head .= "Referer: http://".$info['host'].$info['path']."\r\n";
 $head .= "Content-type: application/x-www-form-urlencoded\r\n";
 $head .= "Content-Length: ".strlen(trim($query))."\r\n";
 $head .= "\r\n";
 $head .= trim($query);
 $write = fputs($fp, $head);
 print_r(fgets($fp));
 while (!feof($fp))
 {
  $line = fgets($fp);
  echo $line."<br>";
 }
}

以上是“php中如何發送http請求”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岱山县| 资中县| 广平县| 连云港市| 左云县| 天镇县| 清丰县| 广汉市| 伊春市| 博乐市| 铜川市| 上虞市| 阿合奇县| 普陀区| 子长县| 威宁| 鄂托克前旗| 灵山县| 盐源县| 台中市| 山西省| 托克托县| 全椒县| 永修县| 尤溪县| 嵊泗县| 呼和浩特市| 金溪县| 呼伦贝尔市| 惠安县| 广南县| 汕头市| 化隆| 旬邑县| 宝丰县| 滨海县| 中宁县| 腾冲县| 象山县| 玛沁县| 宁武县|