php生产环境 用 php://stdout 进行 安全 高效 调试
2015-11-06 13:18
483 查看
本文原地址: http://blog.csdn.net/zhangrui_fslib_org/article/details/49681607
转载请注明出处,有疑问或错误请发邮件到zhangrui@fslib.org
延伸阅读:php-fpm 生产环境 调试信息 日志系统 设计 支持 thinkphp
/article/9885635.html
在开发时调试php的方法多样.而对于生产环境调试即要考虑性能也要考虑安全,以下列举出常见的方式及说明弊端:
1,写日志,用fopen打开一个文件,写日志,这个方法简单高效,但对多用户同时访问时,会用竞争问题,而且消耗磁盘io,文件大小也不易控制;
2,写数据库,此方法解决了竞争问题问题,但增加了数据库的负担;
我在看php新版本的新功能时,从5.6版本后内置支持php://stdout,这是一个内存对象,而且输出直接打印在服务器命令行,用户完全无法察觉;
以下是我的测试代码
<!DOCTYPE html>
<html>
<body>
<h1>我的第一张 PHP 页面</h1>
<?php
echo "Hello World!";
$fd = fopen('php://stdout', 'w');
if ($fd) {
fwrite($fd, "7777888");
fwrite($fd, "\n");
fclose($fd);
}
?>
</body>
</html>
我用管道捕捉php-cgi的输出,刷新多次,结果如下
7777888
7777888
7777888
7777888
7777888
转载请注明出处,有疑问或错误请发邮件到zhangrui@fslib.org
延伸阅读:php-fpm 生产环境 调试信息 日志系统 设计 支持 thinkphp
/article/9885635.html
在开发时调试php的方法多样.而对于生产环境调试即要考虑性能也要考虑安全,以下列举出常见的方式及说明弊端:
1,写日志,用fopen打开一个文件,写日志,这个方法简单高效,但对多用户同时访问时,会用竞争问题,而且消耗磁盘io,文件大小也不易控制;
2,写数据库,此方法解决了竞争问题问题,但增加了数据库的负担;
我在看php新版本的新功能时,从5.6版本后内置支持php://stdout,这是一个内存对象,而且输出直接打印在服务器命令行,用户完全无法察觉;
以下是我的测试代码
<!DOCTYPE html>
<html>
<body>
<h1>我的第一张 PHP 页面</h1>
<?php
echo "Hello World!";
$fd = fopen('php://stdout', 'w');
if ($fd) {
fwrite($fd, "7777888");
fwrite($fd, "\n");
fclose($fd);
}
?>
</body>
</html>
我用管道捕捉php-cgi的输出,刷新多次,结果如下
7777888
7777888
7777888
7777888
7777888
相关文章推荐
- PHP原生DOM对象操作XML
- LAMP之PHP安装 配置jpeglib 依赖库报错解决方法
- windows基于Thrift的php客户端访问java的服务端
- 夺命雷公狗ThinkPHP项目之----商城5快速入门
- php与浏览器的缓存机制详解
- 6.php sql的操作,增删改查系列
- MVC - php静态变量, 成员和方法
- Think PHP 安装教程及使用
- php 不重新编译增加openssl扩展
- 夺命雷公狗ThinkPHP项目之----商城4ThinkPHP框架介绍
- cakephp 打印出SQL语句
- PHP正则中的捕获组与非捕获组
- TP-Link wr703N 使用华为HiLink系列上网卡的设置【转】
- 夺命雷公狗ThinkPHP项目之----商城3编程思想
- 系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式
- php封装操作数据库的类
- THINKPHP中使用swoole
- Yii2调用mysql存储过程获取返回值
- php小知识
- phpize的作用(资料整理)