PHP fsockopen 异步写入文件

PHP fsockopen 异步写入文件,第1张

概述b.php<?php$url='http://fsc.com/a.php';$param=array('name'=>'fdipzone','gender'=>'male','age'=>30);doRequest($url,$param);echo"立马输出";functiond
b.PHP


<?PHP$url = 'http://fsc.com/a.PHP';$param = array( 'name'=>'fdipzone', 'gender'=>'male', 'age'=>30);doRequest($url, $param);echo "立马输出";function doRequest($url, $param=array()){ $urlinfo = parse_url($url); $host = $urlinfo['host']; $path = $urlinfo['path']; $query = isset($param)? http_build_query($param) : ''; $port = 80; $errno = 0; $errstr = ''; $timeout = 10; $fp = fsockopen($host, $port, $errno, $errstr, $timeout); stream_set_blocking($fp,true);//开启了手册上说的非阻塞模式 stream_set_timeout($fp,1);//设置超时 $out = "POST ".$path." http/1.1\r\n"; $out .= "host:".$host."\r\n"; $out .= "content-length:".strlen($query)."\r\n"; $out .= "content-type:application/x-www-form-urlencoded\r\n"; $out .= "connection:close\r\n\r\n"; $out .= $query; fputs($fp, $out); fclose($fp); /* //需要显示返回的信息,就用这个 fwrite($fp, $out); $content = ''; while (!feof($fp)) { $content .= fgets($fp); } fclose($fp); echo $content;//处理返回的信息 */}

a.PHP

<?PHP// 当执行过程中,客户端连接断开或连接超时,都会有可能造成执行不完整,因此需要加上ignore_user_abort(true); // 忽略客户端断开 此处的代码需要PHP.ini开启相关的选项set_time_limit(0);    // 设置执行不超时$data = $_GET;if(empty($data)){    $data = $_POST;}$data['cont']= '延迟10秒写入,有上面的ignore函数在,网页客户端关闭网页,也可以照样执行';$str = Json_encode($data,JsON_UnesCAPED_UNICODE);sleep(10);//模拟耗时任务file_put_contents('./1.txt',$str);

打开上面的b.PHP   ,过10秒以后,a页面将接收到的东西写到1.txt里面,

打开b.PHP后,关闭页面也会执行异步写入 *** 作,不会断开

总结

以上是内存溢出为你收集整理的PHP fsockopen 异步写入文件全部内容,希望文章能够帮你解决PHP fsockopen 异步写入文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1001566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存