php socket方式提交的post詳解
更新時間:2008年07月19日 19:53:38 作者:
php下POST報文到主機 ,post提交利用代碼
<?
/*
** POST報文到主機
*/
function PostToHost($url, $data) {
$url = parse_url($url);
if (!$url) return "couldn\'t parse url";
if (!isset($url[\'port\'])) { $url[\'port\'] = ""; }
if (!isset($url[\'query\'])) { $url[\'query\'] = ""; }
$encoded = "";
while (list($k,$v) = each($data)) {
$encoded .= ($encoded ? "&" : "");
$encoded .= rawurlencode($k)."=".rawurlencode($v);
}
$port = $url[\'port\'] ? $url[\'port\'] : 80;
$fp = fsockopen($url[\'host\'], $port, $errno, $errstr);
if (!$fp) return "Failed to open socket to $url[host] $port ERROR: $errno - $errstr";
fputs($fp, sprintf("POST %s%s%s HTTP/1.0\\n", $url[\'path\'], $url[\'query\'] ? "?" : "", $url[\'query\']));
fputs($fp, "Host: $url[host]\\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\\n");
fputs($fp, "Content-length: " . strlen($encoded) . "\\n");
fputs($fp, "Connection: close\\n\\n");
fputs($fp, "$encoded\\n");
$line = fgets($fp,1024);
if (!eregi("^HTTP/1\\.. 200", $line)) return;
$results = ""; $inheader = 1;
while(!feof($fp)) {
$line = fgets($fp,1024);
if ($inheader && ($line == "\\n" || $line == "\\r\\n")) {
$inheader = 0;
}
elseif (!$inheader) {
$results .= $line;
}
}
fclose($fp);
return $results;
}/* end function PostToHost */
?>
/*
** POST報文到主機
*/
function PostToHost($url, $data) {
$url = parse_url($url);
if (!$url) return "couldn\'t parse url";
if (!isset($url[\'port\'])) { $url[\'port\'] = ""; }
if (!isset($url[\'query\'])) { $url[\'query\'] = ""; }
$encoded = "";
while (list($k,$v) = each($data)) {
$encoded .= ($encoded ? "&" : "");
$encoded .= rawurlencode($k)."=".rawurlencode($v);
}
$port = $url[\'port\'] ? $url[\'port\'] : 80;
$fp = fsockopen($url[\'host\'], $port, $errno, $errstr);
if (!$fp) return "Failed to open socket to $url[host] $port ERROR: $errno - $errstr";
fputs($fp, sprintf("POST %s%s%s HTTP/1.0\\n", $url[\'path\'], $url[\'query\'] ? "?" : "", $url[\'query\']));
fputs($fp, "Host: $url[host]\\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\\n");
fputs($fp, "Content-length: " . strlen($encoded) . "\\n");
fputs($fp, "Connection: close\\n\\n");
fputs($fp, "$encoded\\n");
$line = fgets($fp,1024);
if (!eregi("^HTTP/1\\.. 200", $line)) return;
$results = ""; $inheader = 1;
while(!feof($fp)) {
$line = fgets($fp,1024);
if ($inheader && ($line == "\\n" || $line == "\\r\\n")) {
$inheader = 0;
}
elseif (!$inheader) {
$results .= $line;
}
}
fclose($fp);
return $results;
}/* end function PostToHost */
?>
您可能感興趣的文章:
- php 利用socket發(fā)送HTTP請求(GET,POST)
- PHP使用socket發(fā)送HTTP請求的方法
- 使用PHP Socket 編程模擬Http post和get請求
- php中用socket模擬http中post或者get提交數(shù)據(jù)的示例代碼
- php基于socket實現(xiàn)SMTP發(fā)送郵件的方法
- php中使用Curl、socket、file_get_contents三種方法POST提交數(shù)據(jù)
- PHP中使用socket方式GET、POST數(shù)據(jù)實例
- PHP socket 模擬POST 請求實例代碼
- php使用socket post數(shù)據(jù)到其它web服務(wù)器的方法
- php自定義類fsocket模擬post或get請求的方法
- php使用socket調(diào)用http和smtp協(xié)議實例小結(jié)
相關(guān)文章
PHP入門教程之正則表達式基本用法實例詳解(正則匹配,搜索,分割等)
這篇文章主要介紹了PHP入門教程之正則表達式基本用法,結(jié)合實例形式分析了正則表達式的結(jié)構(gòu)、原理及正則匹配、搜索、分割、元子符、修飾符等相關(guān)概念與操作技巧,需要的朋友可以參考下2016-09-09PHP調(diào)用FFMpeg實現(xiàn)音視頻操作的示例詳解
這篇文章主要為大家詳細介紹了PHP如何調(diào)用FFMpeg實現(xiàn)簡單的音視頻操作,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解下2023-10-10apache2.2.4+mysql5.0.77+php5.2.8安裝精簡
linux下apache php環(huán)境的配置方法。2009-04-04CI框架中site_url()和base_url()的區(qū)別
這篇文章主要介紹了CI框架中site_url()和base_url()的區(qū)別,需要的朋友可以參考下2015-01-01PHP+Mysql+jQuery實現(xiàn)動態(tài)展示信息
在本文中,我將介紹如何在頁面上實現(xiàn)動態(tài)展示用戶發(fā)表的信息,將用戶發(fā)表的信息逐條播放展示。該效果可以在展示系統(tǒng)動態(tài)、商品評論等場景應(yīng)用2011-10-10