当host为:http://xxxx.com的时候,我使用fsockopen('http://xxxx.com',80,$errno,$errstr,10),无法打开该接口,每次调用都是显示:
Warning: fsockopen(): unable to connect to http://xxxx.com/:80 (Unable to find the socket transport "http" - did you forget to enable it when you configured PHP?) 求指点如何使用fsockopen来发送请求到http开头的url,如何获取网页输出的文本?

解决方案 »

  1.   

    楼主出错的原因很有可能打开正确的Internet连接
    试一试$fp = fsockopen('smtp.163.com',25,$errno,$errstr,10);//用来发收163邮件时建立连接
    或者
    $fp = fsockopen("www.k686.com", 80, &$errno, &$errstr, 10);
    是否还是会提示错误fsockopen函数打开网络的 Socket 链接 
    内容说明
    目前这个函数提供二个 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() 转换成无搁置模式。流程一般是这样的
    建立fsockopen 资源,定义发送内容,用fwrite函数或者fputs函数写入定义内容,一行一行的输出得到的内容,直到到达文件末尾,fgets函数或者是fread使用.使用fclose关闭建立的