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 */

?>相关阅读:

jQuery 添加/移除CSS类实现代码

设置Proxy Server和SQL Server实现互联网上数据库的

asp.net 半角全角转化工具

在JavaScript中,为什么要尽可能使用局部变量?

ASP.NET入门教程:DataList控件

SQL Server 2008新特性面面观

Linux安全防护十大招数

Oracle DDL,DML,DCL,TCL 入门概念

Z-Blog 文件复制插件

将后台数据从Berkeley的文件DB转到MySQL

使用jQuery实现dropdownlist的联动效果(sharepoint 2007)

Vista中Office2007字体不能正常显示

帝国ecms教程:一些常用的技巧大全

EJB3.0之实体Bean的继承

php socket方式提交的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($ur...
<?  /*  ** POST 报文 主机 */  function Post ToHost($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
首先了解下 socket 通讯传输数据的特点:数据在网络传输时使用的都是字节流或字符流, Socket 也不例外,所以我们 发送 数据的时候需要转换为字节 发送 ,读取的时候也是以字节为单位读取。 那么问题就在于 socket 通讯时,接收方并不知道此次数据有多长,因此无法精确地创建一个缓冲区(字节数组)用来接收,在不定长通讯中,通常使用的 方式 时每次默认读取8*1024长度的字节,若输入流中仍有数据,则再次读取,一直到输入流没有数据为止。但是如果 发送 数据过大时, 发送 方会对数据进行分包 发送 ,这种情况下或导致接收方判断错误,误以为
PHP + FLASH 游戏的编程中,经常碰到需要 PHP 使用 Socket 和Flash 的 XML socket 进行交互。 PHP 的在处理 socket 客户端 发送 过来的数据时,会有以下四种情况: 1、正常数据,如: 2、密集的多条数据(是通过一次TCP过程),如: 3、超长的数据分多次 发送 ,如: $ xml _data = '&lt; xml &gt;...&lt;/ xml &gt;';// 发送 xml $url = 'http://localhost/get XML . php ';//接收 XML 地址 $header = "Content-type: text/ xml ";//定义content-type为 xml 一直以来很少看到有多少人使用 php socket 模块来做一些事情,大概大家都把它定位在脚本语言的范畴内吧,但是其实 php socket 模块可以做很多事情,包括做ftplist,http post 提交 ,smtp 提交 ,组包并进行特殊 报文 的交互(如smpp协议),whois查询。这些都是比较常见的查询。 特别是 php socket 扩展库可以做的事情简直不会比c差
我在Windows命令行输入命令:C:\wamp\bin\ php \ php 5.2.6\ php .exe get Xml . php 以执行 php 文件。 出现错误:Fatal error: Call to undefined function socket _create() in C:\wamp\www\get Xml . php on line 13 网上搜了挺多论坛上的Q&amp;A贴子,答案基本上是: 1....