用php写程序,发送http请求

DrunkenLion 2003-08-26 11:32:51
这个程序是在命令行方式下执行的。
不能用web方式执行
...全文
831 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinyaoxp 2004-02-26
回复
waternet 2004-02-24
用CURL 也可以啊!
具体要查手册!
回复
xuzuning 2004-02-24
手册:
fsockopen
打开网路的 Socket 连结。

语法: int fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);

传回值: 整数

函式种类: 网路系统




内容说明


目前这个函式提供二个 Socket 资料流介面,分别为 Internet 用的 AF_INET 及 Unix 用的 AF_UNIX。当在 Internet 情形下使用时,参数 hostname 及 port 分别代表网址及埠号。在 UNIX 情形可做 IPC,hostname 参数表示到 socket 的路径,port 设定为 0。可省略的 timeout 选项表示多久没有连上就中断。在使用本函式之后会传回档案指标,供档案函式使用,包括 fgets()、fgetss()、fputs()、fclose() 与 feof()。参数 errno 及 errstr 也是可省略的,主要当做错误处理使用。使用本函式,会使用搁置模式 (blocking mode) 处理,可用 set_socket_blocking() 转换成无搁置模式。




使用范例


本例用来模拟成 HTTP 连线。
<?php
$fp = fsockopen("php.wilson.gs", 80, &$errno, &$errstr, 10);
if(!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
fputs($fp,"GET / HTTP/1.0\nHost: php.wilson.gs\n\n");
while(!feof($fp)) {
echo fgets($fp,128);
}
fclose($fp);
}
?>
回复
ige1976 2004-02-24
不知道仁兄想做什么,如果只是为了放为一个页面有很多方法。file()就可以,楼上说的socket方法也不错,而且可以设定参数,如果没有搞错写个html页面发送post请求也不是不可一呀。
回复
keen1982 2004-02-24
<?php
$fp = fsockopen("www.sina.com.cn",80,&$errno,&$errstr,100);
if(!$fp){
echo "++++++++$errstr ($errno)<br>\n";
}else{
fputs($fp,"GET / HTTP/1.0\n\n");
while(!feof($fp)){
echo fgets($fp,2048);
}
fclose($fp);
}
?>
回复
unijune 2004-02-24
fopen也可以呀
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告