当前位置: 首页 > 图文教程 > 网络编程 > PHP > 使用PHP socke 向指定页面提交数据

PHP
NT IIS下用ODBC连接数据库
基于mysql的bbs设计(三)
基于mysql的bbs设计(二)
基于mysql的bbs设计(一)
PHP+DBM的同学录程序(2)
PHP+DBM的同学录程序(3)
基于mysql的bbs设计(四)
PHP+DBM的同学录程序(1)
PHP+DBM的同学录程序(4)
同时提取多条新闻中的文本一例
PHP+DBM的同学录程序(5)
基于mysql的bbs设计(五)
杏林同学录(二)
杏林同学录(一)
php访问查询mysql数据的三种方法
实时抓取YAHOO股票报价的代码
模拟SQLSERVER的两个函数:dateadd(),datediff()
如何实现给定日期的若干天以后的日期
一个SQL管理员的web接口
利用PHP动态生成VRML网页

使用PHP socke 向指定页面提交数据


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 185 ::
收藏到网摘: n/a

一直以为有了ajax别人网站的数据就可以拿过来用,这也是我这几天想的一个方像,但是用了firefox测试之后,现在不能, 在jquery里用 load post 等等,无法得到我想要的结果!于是突然-----这几天想的东西都白想了,现在只好这样了
现在想在php里面向指定的页面提交数据,应该有,还可以有返回值
于是找了这个函数,不过没有试,我想可以不知道空间能不能通得过
是村里拿来的!
复制代码 代码如下:

<?php
/*-----------------------------------------------------------
*功能:使用PHP socke 向指定页面提交数据
*
*作者:Honghe.c
*
*说明:post($url, $data)
*
* $url = 'http://www.ruanchen.com';
* $data[user] = 'hong';
* $data[pass] = 'xowldo';
* echo post($url, $data);
*-----------------------------------------------------------*/
function post($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);
}
$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
if (!$fp) return "Failed to open socket to $url[host]";
fputs($fp, sprintf("POST %s%s%s HTTP/1.0n", $url['path'], $url['query'] ? "?" : "", $url['query']));
fputs($fp, "Host: $url[host]n");
fputs($fp, "Content-type: application/x-www-form-urlencodedn");
fputs($fp, "Content-length: " . strlen($encoded) . "n");
fputs($fp, "Connection: closenn");
fputs($fp, "$encodedn");
$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 == "rn")) {
$inheader = 0;
}
elseif (!$inheader) {
$results .= $line;
}
}
fclose($fp);
return $results;
}
/*
$url = 'http://video.xxx.com:80/game_vm.php';
$data['gid'] = '1';
echo post($url, $data);
*/
?>