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請(qǐng)求(GET,POST)
- PHP使用socket發(fā)送HTTP請(qǐng)求的方法
- 使用PHP Socket 編程模擬Http post和get請(qǐng)求
- 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 請(qǐng)求實(shí)例代碼
- php使用socket post數(shù)據(jù)到其它web服務(wù)器的方法
- php自定義類fsocket模擬post或get請(qǐng)求的方法
- php使用socket調(diào)用http和smtp協(xié)議實(shí)例小結(jié)
相關(guān)文章
Laravel中9個(gè)不經(jīng)常用的小技巧匯總
這篇文章主要給大家總結(jié)介紹了關(guān)于Laravel中9個(gè)不經(jīng)常用的小技巧,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Laravel具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Laravel框架學(xué)習(xí)筆記(一)環(huán)境搭建
本文主要是把自己學(xué)習(xí)Laravel框架中的經(jīng)驗(yàn)寫下來。這是本系列的第一篇,工欲善其事必先利其器,先把環(huán)境搭建好吧,之前也沒寫過什么文章,可能文章結(jié)構(gòu)比較混亂,想到那寫到哪。2014-10-10
Laravel 實(shí)現(xiàn)在Blade模版中使用全局變量代替路徑的例子
今天小編就為大家分享一篇Laravel 實(shí)現(xiàn)在Blade模版中使用全局變量代替路徑的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10
laravel實(shí)現(xiàn)批量更新多條記錄的方法示例
最近在使用Laravel,想批量插入近千條數(shù)據(jù),通過網(wǎng)上找到了相關(guān)的解決方法,所以下面這篇文章主要給大家介紹了關(guān)于laravel實(shí)現(xiàn)批量更新多條記錄的相關(guān)資料,文中給出了詳細(xì)的示例代碼,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
yii2 在控制器中驗(yàn)證請(qǐng)求參數(shù)的使用方法
這篇文章主要介紹了yii2 在控制器中驗(yàn)證請(qǐng)求參數(shù)的使用方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06

