php socket方式提交post详解
2013-08-09 08:58
591 查看
php下POST报文到主机 ,post提交代码。
<? /* ** POST报文到主机 ** by www.jbxue.com */ 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方式提交的post详解
- php socket方式提交的post详解
- PHP 以POST方式提交XML、获取XML,解析XML详解及实例
- PHP表单中的Get与Post两种提交的方式的区别
- PHP中使用socket方式GET、POST数据实例
- php中使用Curl、socket、file_get_contents三种方法POST提交数据
- html基础 post方式提交数据给后台的php处理
- php中使用Curl、socket、file_get_contents三种方法POST提交数据
- PHP安全代码--POST方式提交数据
- vuejs vue-resource post方式提交参数PHP $_POST获取不到
- html基础 post方式提交数据给后台的php处理
- php post方式提交数据
- php提交post和get的几种方式
- PHP判断表单是否通过post方式提交
- Get和POST表单提交方式详解
- form提交方式Get与Post详解
- PHP 以POST方式提交XML、获取XML,最后解析XML
- 在PHP中模拟post提交方式,调用JSON接口_php调用json接口
- php中用socket模拟http中post或者get提交数据的示例代码
- PHP 以POST方式提交XML、获取XML,最后解析XML