php socket方式提交的post詳解
更新時(shí)間:2008年07月19日 19:53:38 作者:
php下POST報(bào)文到主機(jī) ,post提交利用代碼
<?
/*
** POST報(bào)文到主機(jī)
*/
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報(bào)文到主機(jī)
*/
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請(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方式GET、POST數(shù)據(jù)實(shí)例
- 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)文章
php將字符串隨機(jī)分割成不同長(zhǎng)度數(shù)組的方法
這篇文章主要介紹了php將字符串隨機(jī)分割成不同長(zhǎng)度數(shù)組的方法,涉及隨機(jī)數(shù)及字符串操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06PHP入門(mén)教程之正則表達(dá)式基本用法實(shí)例詳解(正則匹配,搜索,分割等)
這篇文章主要介紹了PHP入門(mén)教程之正則表達(dá)式基本用法,結(jié)合實(shí)例形式分析了正則表達(dá)式的結(jié)構(gòu)、原理及正則匹配、搜索、分割、元子符、修飾符等相關(guān)概念與操作技巧,需要的朋友可以參考下2016-09-09PHP調(diào)用FFMpeg實(shí)現(xiàn)音視頻操作的示例詳解
這篇文章主要為大家詳細(xì)介紹了PHP如何調(diào)用FFMpeg實(shí)現(xiàn)簡(jiǎn)單的音視頻操作,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解下2023-10-10apache2.2.4+mysql5.0.77+php5.2.8安裝精簡(jiǎn)
linux下apache php環(huán)境的配置方法。2009-04-04CI框架中site_url()和base_url()的區(qū)別
這篇文章主要介紹了CI框架中site_url()和base_url()的區(qū)別,需要的朋友可以參考下2015-01-01php實(shí)現(xiàn)指定字符串中查找子字符串的方法
這篇文章主要介紹了php實(shí)現(xiàn)指定字符串中查找子字符串的方法,涉及php中strpos()函數(shù)查找字符串的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03PHP+Mysql+jQuery實(shí)現(xiàn)動(dòng)態(tài)展示信息
在本文中,我將介紹如何在頁(yè)面上實(shí)現(xiàn)動(dòng)態(tài)展示用戶發(fā)表的信息,將用戶發(fā)表的信息逐條播放展示。該效果可以在展示系統(tǒng)動(dòng)態(tài)、商品評(píng)論等場(chǎng)景應(yīng)用2011-10-10