PHP中使用socket方式GET、POST數(shù)據(jù)實(shí)例
更新時(shí)間:2015年04月02日 09:26:45 投稿:junjie
這篇文章主要介紹了PHP中使用socket方式GET、POST數(shù)據(jù)實(shí)例,本文分別給出GET方式和POST方式的代碼實(shí)例,需要的朋友可以參考下
1. 使用 PHP 獲得網(wǎng)頁內(nèi)容 GET方式
復(fù)制代碼 代碼如下:
<?php
function socketGet($url, &$ret)
{
$urlArr = parse_url($url);
$host = $urlArr['host'];
$port = isset($urlArr['port'])?$urlArr['port']:80;
$path = isset($urlArr['path'])?$urlArr['path']:"/";
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if (!$fp)
{
echo "$errstr ($errno)<br />\n";
return false;
}
else
{
$out = "GET $path HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Connection: Close\r\n\r\n";
$ret = "";
fwrite($fp, $out);
while (!feof($fp))
{
$ret .= fgets($fp, 128);
}
fclose($fp);
}
return true;
}
?>
2. 使用 PHP 向頁面 POST 數(shù)據(jù)
復(fù)制代碼 代碼如下:
<?php
function socketPost($url, $data, &$ret)
{
$urlArr = parse_url($url);
$host = $urlArr['host'];
$port = isset($urlArr['port'])?$urlArr['port']:80;
$path = isset($urlArr['path'])?$urlArr['path']:"/";
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if (!$fp)
{
echo "$errstr ($errno)<br />\n";
return false;
}
else
{
$out = "POST $path HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Content-Length: ".strlen($data)."\r\n";
$out .= "Connection: Keep-Alive\r\n\r\n";
$out .= $data;
$ret = "";
fwrite($fp, $out);
while (!feof($fp))
{
$ret .= fgets($fp, 128);
}
fclose($fp);
}
return true;
}
?>
如果post報(bào)錯(cuò),把$out .= "Connection: Keep-Alive\r\n\r\n";中的Keep-Alive改成Close
您可能感興趣的文章:
- php 利用socket發(fā)送HTTP請求(GET,POST)
- PHP使用socket發(fā)送HTTP請求的方法
- 使用PHP Socket 編程模擬Http post和get請求
- php中用socket模擬http中post或者get提交數(shù)據(jù)的示例代碼
- php基于socket實(shí)現(xiàn)SMTP發(fā)送郵件的方法
- php中使用Curl、socket、file_get_contents三種方法POST提交數(shù)據(jù)
- php socket方式提交的post詳解
- PHP socket 模擬POST 請求實(shí)例代碼
- php使用socket post數(shù)據(jù)到其它web服務(wù)器的方法
- php自定義類fsocket模擬post或get請求的方法
- php使用socket調(diào)用http和smtp協(xié)議實(shí)例小結(jié)
相關(guān)文章
基于php+MySql實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)實(shí)例
這篇文章主要介紹了基于php+MySql實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)實(shí)例,文中通過圖片功能介紹的非常詳細(xì),文章末尾附帶項(xiàng)目源碼,需要的朋友可以參考下2020-08-08laravel 5.4 + vue + vux + element的環(huán)境搭配過程介紹
這篇文章主要給大家介紹了關(guān)于laravel 5.4 + vue + vux + element的環(huán)境搭配的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04thinkPHP實(shí)現(xiàn)多字段模糊匹配查詢的方法
這篇文章主要介紹了thinkPHP實(shí)現(xiàn)多字段模糊匹配查詢的方法,結(jié)合實(shí)例形式分析了thinkPHP進(jìn)行模糊匹配查詢的相關(guān)模型操作與sql語句,需要的朋友可以參考下2016-12-12PHP中文件讀、寫、刪的操作(PHP中對(duì)文件和目錄操作)
現(xiàn)在我把php中的這些函數(shù)做一詳細(xì)總結(jié)并實(shí)例示范如何使用.,關(guān)于對(duì)應(yīng)的函數(shù)詳細(xì)介紹,請查閱php手冊.此處只總結(jié)重點(diǎn).和需要注意的地方.(這在php手冊是沒有的.)2012-03-03詳解Laravel5.6 Passport實(shí)現(xiàn)Api接口認(rèn)證
這篇文章主要介紹了詳解Laravel5.6 Passport實(shí)現(xiàn)Api接口認(rèn)證,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07