fsockopen】的更多相关文章

php执行一段程序,有可能几毫秒就执行完毕,也有可能耗时较长.例如,用户下单这个事件,如果调用了些第三方服务进行发邮件.短信.推送等通知,可能导致前端一直在等待.而有的时候,我们并不关心这些耗时脚本的返回结果,只要执行就行了.这时候就需要采用异步的方式执行. 众所周知,PHP没有直接支持多线程这种东西.我们可以采用折衷的方式实现.这里主要说的就是fsockopen. 通过fsockopen发送请求并忽略返回结果,程序可以马上返回. 示例代码: $fp = fsockopen("www.examp…
function httpPost($url, $data,$cookieStr='') { $url_array = parse_url($url); $host = $url_array['host']; $port = isset($url_array['port'])?($url_array['port']):80; if(!($conn = fsockopen($host,$port,$errno, $errstr, 30))) { return false; } $header =…
$fp = fsockopen("www.jb51.net", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno) "; } else { $out = "get / http/1.1 "; $out .= "host: www.jb51.net"; $out .= "connection: close "; fwrite($fp, $o…
private function fsock_asy_do($get){ $fp = fsockopen("ssl://www.xxx.com", 443, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { stream_set_blocking($fp,0);//开启非阻塞模式 $out = "GET /".$get."…
一.如何禁用fsockopen()下面是两种常用的禁用fsockopen的方法.1.修改php.ini,将 disable_functions = 后加入 fsockopen2.修改php.ini,将 allow_url_fopen = On 改为 allow_url_fopen = Off二.如何解决fsockopen函数被禁用1.如果服务器没有同时禁用pfsockopen,那么直接将fsockopen函数替换为pfsockopen.具体操作:搜索程序中的字符串 fsockopen( 替换为…
了解完了HTTP头信息和URL信息的具体内容,我们开始尝试自己动手写一段头信息发送到服务器.Windows内置命令Telnet可以帮助我们发送简单的HTTP请求. 并且TELNET是一个特别灵活的工具,我们还可以用它进行FTP/SMTP/POP3/TCP等方式的简单请求. 通过开始菜单--运行--CMD命令进入DOS状态, 我们输入“Telnet 主机地址 端口(Telnet 192.168.1.99 80)” 来进入telnet命令状态(完全黑窗口,此时输出字符会出问题),我们按”ctrl”+…
最近要用到通过post上传文件,网上盛传的有curl的post提交和fsockopen,其中curl最简单,于是从最简单的说起. 这是简单的将一个变量post到另外一个页面 $url = ''; $data = array('a'=> 'b'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_…
/** * 函数介绍: 用于post方式提交数据 * 输入参数: 完整url, 数据 * 返回值 : 接口返回值 */ function post_it($url, $data = '', $timeout = '6') { $urls = parse_url($url); if (!$urls) { return "-500"; } $port = isset($urls['port']) ? $urls['port'] : null; //isset()判断 if (!$port)…
index.php <?php function test() { $fp=fsockopen("localhost", 80, $errno, $errstr, 30); if(!$fp){ echo "$errstr ($errno)<br />"; } sleep(1); fputs($fp,"GET /test.php"); fclose($fp);} echo time().'<br>';test();ec…
前面小节 PHP抓取网络数据的6种常见方法 谈到了 fsockopen,curl与file_get_contents 的使用方法,虽然它们都能达到同一个使用目的,但是它们之间又有什么区别呢? 先谈谈curl与fsockopen. fsockopen 是比较底层的调用,属于网络系统的socket调用,而curl经过的包装支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证,HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文…
fsockopen — 打开一个网络连接或者一个Unix套接字连接 说明 resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [,float $timeout = ini_get("default_socket_timeout") ]]]] ) 初始化一个套接字连接到指定主机(hostname). PHP支持以下的套接字传输器类型列表 所支持的…
最近要用到通过post上传文件,网上盛传的有curl的post提交和fsockopen,其中curl最简单,于是从最简单的说起. 这是简单的将一个变量post到另外一个页面 $url = ''; $data = array('a'=> 'b'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_…
file_get_content 优点:在抓取单个文件上,效率很高,返回没有头信息的文件. 缺点:在抓取远程文件时,和fopen一样容易出错.在抓取多个跨域文件时,未对DNS进行缓存,所以效率上不不高. curl 优点:经过的包装支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证,HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传,上载文件断点续传,http代理服务器管道( proxy tunneling),…
服务器同时禁用了fsockopen pfsockopen,那么用其他函数代替,如stream_socket_client().注意:stream_socket_client()和fsockopen()的参数不同. 具体操作: 搜索程序中的字符串 fsockopen() 替换为 stream_socket_client(),然后,将原fsockopen函数中的端口参数“80”删掉,并加到$host. 示例如下 修改前: $fp = fsockopen($host, 80, $errno, $err…
<?php function HTTP_Post($URL,$data, $referrer="") { // parsing the given URL $URL_Info=parse_url($URL); // Building referrer if($referrer=="") // if not given use this script as referrer $referrer=$_SERVER["SCRIPT_URI"];…
URL是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 CURL库. 我们可以用CURL来伪造IP和来路,例子:1.php 请求 2.php . CURLOPT_HTTPHEADER 一个用来设置HTTP头字段的数组.使用如下的形式的数组进行设置: array('Content-type: text/plain', 'Content-length: 100') 如: curl_setopt($ch, CURLOPT_HTTP…
Socket可以理解为两台计算机相互通信的通道. 用法:使用fsockopen()函数 具体用法详见上篇文章.函数的参数为URL.端口号.一个存放错误编号的变量.一个存放错误信息字符串的变量和超时等待时间.(只有第一个参数是必须的) 常见的端口表: 端口号 主要用途 21 FTP 22 SSH 23 Telnet 25 SMTP 80 Web 110 POP 其中,组成URl的几个部分为:协议名(scheme),主机(host),端口号(port),文件路径(path),查询参数(query).…
<?php /* * 短信相关api */ class Webcall { protected $VCC_CODE; //api的账号 protected $password; //api的密码 protected $api_url; //api的地址 /* * 设置api相关参数 * */ public function __construct() { $this->CI = & get_instance(); $this->CI->config->load('co…
1.PHP fsockopen函数说明: Open Internet or Unix domain socket connection(打开套接字链接) Initiates a socket connection to the resource specified by target . fsockopen() returns a file pointer which may be used together with the other file functions (such as fget…
三种处理的方式:     curl     file_get_contents     fsockopen fsockopen 是比较底层的调用,属于网络系统的socket调用,而curl经过的包装支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证,HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传,上载文件断点续传,http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, soc…
fsockopen (PHP 4, PHP 5, PHP 7) 说明 resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] ) 初始化一个套接字连接到指定主机(hostname). PHP支持以下的套接字传输器类型列表 所支持的套…
<?php $fp = fsockopen("www.baidu.com", 80, &$errno, &$errstr, 10); if(!$fp) { echo "$errstr ($errno)<br>\n"; } else { fputs($fp,"GET / HTTP/1.0\nHost: www.baidu.com\n\n"); while(!feof($fp)) { echo fgets($fp,1…
PHP它最大缺点就是无法实现多线程管理,其程序的执行都是从头到尾,按照逻辑一路执行下来,不可能出现分支,这一点是限制php在主流程序语言中往更高级的语言发展的原因之一. 在PHP中我们有的时候其实希望在执行某项操作的时候,同时去执行另外一项操作,举一个场景:在用户抢票的时候,你并不希望用户排队去连接数据库进行查询.判断.插入,完成之后再返回用户结果.其实我们并不需要用户等那么久的时间,用户提交之后,直接告诉他已经抢票成功了就可以了,至于各种操作,交给后台去处理就好.当然,这种情况我们现在都用消息…
fsockopen函数:初始化一个套接字连接到指定主机(hostname) get方式: client.php <?php //创建连接 $fp=fsockopen('localhost',80,$error,$errstr,10); //检测 if (!$fp){ echo $errstr;die; } //拼接http请求报文 $http=''; //请求报文包括3部分 请求行 请求头 请求体 $http.="GET /phpStudy/http/server.php?username…
一,问题描述 Ganglia的各个组件安装情况(不是我装的,只知道这些信息): 集群一共有4台机器,分别是192.168.121.34-37.Gmetad.Gweb和httpd 安装在 192.168.121.34 上:Gmond安装在34,35,36,37机器上. 访问Ganglia-web主页:http://192.168.121.34/ganglia-web/ 出现如下错误: There was an error collecting ganglia data (127.0.0.1:865…
正常情况下,PHP执行的都是同步请求,代码自上而下依次执行,但有些场景如发送邮件.执行耗时任务等操作时就不适用于同步请求,只能使用异步处理请求. 场景要求: 客户端调用服务器a.php接口,需要执行一个长达10s-20s不等的耗资源操作,假如客户端响应请求时间为5秒(请求响应超时时间),5s以上无回复即断开连接. 解决设想: 客户端调用a.php之后,a.php执行异步多线程操作调用b.php,a.php调用成功后即刻反馈给客户端回执,b.php自动执行耗资源操作. 方案: 利用fsockope…
赵永斌:有些时候用file_get_contents()调用外部文件,容易超时报错.换成curl后就可以.具体原因不清楚curl 效率比file_get_contents()和fsockopen()高一些,原因是CURL会自动对DNS信息进行缓存(亮点啊 有我待亲测) 范佳鹏:file_get_contents curl fsockopen在当前所请求环境下选择性操作,没有一概而论:具我们公司开发KBI应用来看:刚开始采用:file_get_contents后来采用:fsockopen最后到至今…
项目需要,场景如下: 某个条件下需要调用接口发送多个请求执行脚本,但是由于每个请求下的脚本执行时间在半个小时左右,所以 就放弃返回执行结果,只要求能秒发送所以就可以. 代码如下: /** * 发起异步请求,忽略返回值 * @param $url 请求url * @return bool */ function asyncPost($url) { $args = parse_url($url); //对url做下简单处理 $host = $args['host']; //获取上报域名 $path…
socket 水泥.沙子,底层的东西fsockopen 水泥预制件,可以用来搭房子curl 毛坯房,自己装修一下就能住了 水泥.沙子不但可以修房子,还能修路.修桥.大型雕塑.socket也是,不但可以用于网页传输,还能传送其他东西,可以做聊天工具.下载器.ftp……几乎可以用网络传送的东西都能用它写出来,当然,需要掌握的知识也不少,例如建墙你就要知道怎么让墙笔直.不易倒.防冻.隔热等等都需要自己学 预制件你就不用管它是否笔直.结构如何.怎样隔热了,这些造的人帮你想好了,你想的就是怎样搭成你想要的…
为了服务器安全考虑很多主机商禁用了php的fsockopen函数,昨天进博客,使用cos-html-cache生成静态文件,尼玛提示: Warning: fsockopen() has been disabled for security reasons in D:\...\cos-html-cache\cos-html-cache.php on line 35 换了其他版本的cos-html-cache,还是不行.后来找到下面的方法. = =.(结果不行,因为函数都被禁用了.) 大家试下,很少…