PHP实现模仿socket请求返回页面的方法
本文实例讲述了PHP实现模仿socket请求返回页面的方法。分享给大家供大家参考。具体实现方法如下:
<?php
$url = "www.XXXX.com"; //自己做替换
$parse = parse_url($url); //对URL进行解析,返回起组成部分。
$host = $parse['host'];
$path = $parse['path'];
$port = 80;
$timeout = 80;
$fp = @fsockopen($host, $port, $errno, $errstr, $timeout); //打开socket链接
if (!$fp){
echo $errno."--".$errstr; //如果错误,则返回错误代码和错误信息
} else {
$out = "POST $path HTTP/1.1\r\n"; //以下是HTTP请求头信息
$out .= "Host: ".$host."\r\n";
$out .= "Accept: */*\r\n";
$out .= "Connection: Close\r\n";
$out .= "Cookie: $cookie\r\n\r\n";
@fwrite($fp, $out); //把请求信息写到链接中
$status = stream_get_meta_data($fp);
if(!$status['timed_out']) {
while (!feof($fp)) {
if(($header = @fgets($fp)) && ($header == "\r\n" || $header == "\n")) {
break;
}
}
$stop = false;
while(!feof($fp) && !$stop) {
$data = fread($fp,8192); //8192为可返回字节数
$return .= $data;
}
}
fclose($fp);
print_r($return);
}
希望本文所述对大家的PHP程序设计有所帮助。
相关推荐
-
PHP向socket服务器收发数据的方法
本文实例讲述了PHP向socket服务器收发数据的方法.分享给大家供大家参考.具体如下: 在PHP要向其它程序发送数据,则需要使用到php的socket功能来实例了,下面我们简单看一个实例,代码如下: 复制代码 代码如下: /*socket收发数据 @host(string) socket服务器IP @post(int) 端口 @str(string) 要发送的数据 @back 1|0 socket端是否有数据返回 返回true|false|服务端数据 *
-
使用PHP Socket 编程模拟Http post和get请求
这里给大家分享一段使用PHP Socket 编程模拟Http post和get请求的代码,非常的实用,结尾部分我们再讨论下php模拟http请求的几种方法. 复制代码 代码如下: <?php /** * 使用PHP Socket 编程模拟Http post和get请求 * @author koma */ class Http{ private $sp = "\r\n"; //这里必须要写成双引号 private $protocol = 'HTTP/1.1';
-
php另类上传图片的方法(PHP用Socket上传图片)
服务器端: 复制代码 代码如下: <?phpset_time_limit(10);//* 设置不显示任何错误 *///error_reporting(0); function varinfo($str) {echo "<PRe>";var_dump($str);echo "<pre>";} $commonProtocol = getprotobyname("tcp");$socket = socket_create(
-
php socket实现的聊天室代码分享
/** * patServer * PHP socket server base class * Events that can be handled: * * onStart * * onConnect * * onConnectionRefused * * onClose * * onShutdown * * onReceiveData * * @version 1.1 * @author Stephan Schmidt <schst@php-tools.de> * @package pa
-
php与flash as3 socket通信传送文件实现代码
前段时间在flashseer看到有人提到:可以通过socket方式传送swf文件,让用户无法获取到swf文件- 当时还没有出as3的反编译,所以对程序的保护没有在意.随着反编译程序的平民化,不希望别人看到源代码的朋友就比较着急- 通过socket方式传送swf文件来避免泄漏源代码的思路(只适用as3): 让主程序的loader(前台swf)通过socket连接到后台程序,然后请求需要的主程序文件.后台读取主程序数据通过socket发送给主程序的 loader.前台swf适用Loader.load
-
php中使用Curl、socket、file_get_contents三种方法POST提交数据
抓取远程内容,之前一直都在用file_get_content函数,其实早就知道有curl这么一个好东西的存在,但是看了一眼后感觉使用颇有些复杂,没有file_get_content那么简单,再就是需求也不大,所以没有学习使用curl.直到最近,要做一个网页小偷程序的时候才发现file_get_content已经完全不能满足需求了.我觉得,在读取远程内容的时候,file_get_content除了使用比curl便捷以外,其他都没有curl好. php中curl和file_get_content的一
-
php中socket通信机制实例详解
本文实例讲述了php中socket通信机制及用法.分享给大家供大家参考.具体分析如下: 一.socket是什么 什么是socket 所谓socket通常也称作"套接字",用于描述ip地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求或者应答网络请求.说白了就是一种通信机制.它类似于银行,电信啊这些部分的电话客服部门.你打电话的时候,那边会分配置一个人回答你的问题,客服部门就相当于socket的服务器端了,你这边呢就相当于客户端了,在和你通话结束
-
php中socket的用法详解
本文实例详细讲述了php中socket的用法,分享给大家供大家参考.具体用法如下: 一.开启socket phpinfo();查看是否开启了socket扩展,否则在php.ini中开启. 二.服务器端代码的写法 复制代码 代码如下: <?php error_reporting(E_ALL); set_time_limit(0); //ob_implicit_flush(); $address = '127.0.0.1'; $port = 10005; //创建端口 if( ($sock = so
-
php中Socket创建与监听实现方法
本文实例讲述了php中Socket创建与监听实现方法.分享给大家供大家参考.具体如下: 这里提供了在php中socket相关函数的一个实例,如创建Socket,接受一个socket连接 ,写入一个Socket及初始化连接等操作,具体实例代码如下: 复制代码 代码如下: $ip="127.0.0.1"; //定义ip地址 $port=1000; //定义端口 $socket=socket_create(af_inet,sock_stream,sol_
-
PHP实现模仿socket请求返回页面的方法
本文实例讲述了PHP实现模仿socket请求返回页面的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php $url = "www.XXXX.com"; //自己做替换 $parse = parse_url($url); //对URL进行解析,返回起组成部分. $host = $parse['host']; $path = $parse['path']; $port = 80; $timeout = 80; $fp = @fsockope
-
Nginx中404页面的配置及AJAX请求返回404页面的方法
404页面基础配置 404错误是WWW网站访问容易出现的错误.最常见的出错提示:404 NOT FOUND.404错误页的设置对网站SEO有很大的影响,而设置不当,比如直接转跳主页等,会被搜索引擎降权拔毛.404页面的目的应该是告诉用户:你所请求的页面是不存在的,同时引导用户浏览网站其他页面而不是关掉窗口离去.搜索引擎通过HTTP状态码来识别网页的状态.当搜索引擎获得了一个错误链接时,网站应该返回404状态码,告诉搜索引擎放弃对该链接的索引.而如果返回200或302状态码,搜索引擎就会为该链接建
-
ie发送ajax请求返回上一次结果的解决方法
问题出现原因: 1. ie下面只会建立一次 ajax 请求,将响应结果放在浏览器缓存里 下次调用该ajax请求时 从缓存里读取 get方式时,获取数据,因发送参数和地址都一致,故IE浏览器会从缓存中取,而不会去请求服务器端,而post方式因为参数的不同,不会产生这个问题 2. 火狐下面 每次激活事件 都会重新建立一次ajax请求 解决方法: 1: 在AJAX请求的页面后加个随机函数,我们可以使用随机时间函数 在javascript发送的URL后加上t=Math.random() 例如这样:URL
-
浅谈ajax请求不同页面的微信JSSDK问题
问题场景: 我在A页面有一个表单内容需要使用蓝牙打印机打印,填完表单信息,并通过ajax请求发送到 B文件(PHP)中处理信息,正常通过form表单跳转到B页面后,是可以打印出来的,因为B页面中除了处理 数据的PHP之外还混合了 JS代码,也就是JSSDK部分.然而通过ajax请求发送过去,则无响应,所有jssdk除了wx.ready和wx.config之外都无法执行.(A.B两个文件都有wx.config,wx.ready配置) 比如发送数据的参数: wx.invoke('sendDataTo
-
vue-cli实现异步请求返回mock模拟数据
在前后端分离开发的过程中,前端开发过程中,页面的数据显示一般都是写死的静态数据,也就是没有经过接口,直接写死在代码中的,在后端给出接口后,再替换为接口数据,为了减少对接成本,mock就出现了.通过预先跟服务器端约定好的接口,模拟请求数据甚至逻辑,能够让前端开发更加独立自主,不会被服务端的开发所阻塞. 网上有不少使用mockjs模拟数据的文章,但基本都是本地拦截请求返回数据,在network中没有发出任何的请求,本地调试起来很不好,只能通过console.log来调试.为了实现真正的异步请求,那么
-
React配置多个代理实现数据请求返回问题
目录 使用axios以及express框架进行数据传输 App.js: index.js: server1.js: server2.js setupProxy.js: 运行 使用axios以及express框架进行数据传输 react脚手架中src文件配置如下: App.js: 设置两个按钮,点击第一个获取学生数据,点击第二个获取汽车数据,值得注意的是这两个数据源在不同的服务器中 import React, { Component } from 'react' import axios from
-
解决nodejs中使用http请求返回值为html时乱码的问题
今天用nodejs进行http请求时返回的数据是一个html文件,然后我还是按照以前解析json数据的方法.果不其然报错了:SyntaxError: Unexpected token in JSON at position 0 没办法,只好换一种方法,将接受到的Buffer对象toString,然后打印出来发现是乱码. 第一感觉是编码问题,google一下然后看官方文档,总结三种方法: 1.toString 加编码格式作为参数. 2.使用iconv-lite 改变编码. 3.使用cheerio
-
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
情景 目前有个需求是在文本框填入内容,自动触发keyup事件,下拉列表会自动过滤相应的选项,但是使用了$,ajax后发现,每次触发事件时,都导致整个网页闪烁,触发了全局ajax事件 代码片段 $.ajax({ type: "POST", url: root + "/xxx, data: requestData, dataType: "json", success: function(data){ // 清空列表 $("#formOpinion #
-
浅谈angular2的http请求返回结果的subcribe注意事项
实例如下: this.monitorSer.getVehicleLonAndLat(vehicleIds) .subscribe( data => { //将data下的data字符串转化为vehdata数组 this.vehData=JSON.parse(data.data); //功能实现 this.loadOverLay(); }, error => this.errorMessage = <any>error );//错误处理 subscribe()异步处理,如果需要用返回
-
virtualbox win7 iis 由于扩展配置问题而无法提供您请求的页面
错误描述: Win7下使用IIS7.5 发布Asp网站,提示 HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 其中在页面打印的详细错误信息中,看到了当前Asp的页面的处理程序是StaticFile 程序,这里很明显是不正常的. 我们都知道Asp页面是动态脚本页,它和Aspx文件一样是由专门的程序来处理的,而StaticFile程序是用来处理静态网页的程序,肯定解析不了Asp文件
随机推荐
- JS按条件 serialize() 对应标签的使用方法
- ASP.NET 回发密码框清空问题处理方法
- 在Swift程序中实现手势识别的方法
- jquery 多行滚动代码(附详细解释)
- 详谈C++何时需要定义赋值/复制构造函数
- Android开发中编写蓝牙相关功能的核心代码讲解
- 关于php 接口问题(php接口主要也就是运用curl,curl函数)
- linux shell txt转换成html的实现代码
- jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
- jQuery 选择器详解
- jQuery使用之标记元素属性用法实例
- JQuery节点元素属性操作方法
- 基于jquery的划词搜索实现(备忘)
- 一个日历,兼容多种浏览器
- Etag和Expires 性能调优
- Spring MVC集成springfox-swagger2构建restful API的方法详解
- Android基于讯飞语音SDK实现语音识别
- Android okhttputils现在进度显示实例代码
- Java创建多线程的两种方式对比
- Android提高之SQLite分页表格实现方法