php 实时输出内容到浏览器
当你在处理一个过程需要耗时很长,但你又需要适时的知道程序当前的处理状况的时候,该怎么办呢?下面就分享一下如何使用php及时的输出当前结果到
浏览器
而不刷新整个页面的效果吧。
应用场景:如安装数据库,实时显示每一步信息,如1.数据库创建成功...2.user表创建成功...3.用户user1插入成功...
PHP 里开启实时输出方法是 ob_implicit_flush() ,但它大部分情况下都不管用,因为 php.ini 配置里 output_buffering 输出缓冲大部分是 On 开启的,还有 zlib.output_compression 也经常会被开启,除了 PHP 这一层,还有 Nginx 的缓冲设置 proxy_buffering ,和压缩 gzip 也大都是开启的。为了一两个页面的需求,修改整个服务器的网站配置,恐怕没有人会做这种选择。
这里推荐一下简单的方法:
set_time_limit(0);
ob_end_clean();
ob_implicit_flush();
header('X-Accel-Buffering: no'); // 关键是加了这一行。
echo '现在是:'.date('H:i:s').'<br>';
sleep(5);
echo '五秒后:'.date('H:i:s');
案例1:实时输出shell脚本日志,将shell脚本输出内容重定向到一个日志文件,再实时输出
set_time_limit(0);
ob_end_clean();
ob_implicit_flush();
header('X-Accel-Buffering: no'); // 关键是加了这一行。
while(exec("/home/web/a.sh >> /home/web/a.log 2>&1 &"){
$log = file_get_contents('/home/web/a.log'); //这里log你可以把每一行都存入数组,然后每次只echo新的行。
echo "最新一行";
php 实时输出内容到浏览器当你在处理一个过程需要耗时很长,但你又需要适时的知道程序当前的处理状况的时候,该怎么办呢?下面就分享一下如何使用php及时的输出当前结果到浏览器而不刷新整个页面的效果吧。应用场景:如安装数据库,实时显示每一步信息,如1.数据库创建成功...2.user表创建成功...3.用户user1插入成功...PHP 里开启实时输出方法是 ob_implicit_flu...
对于运行时间较长的PHP程序来说可能都需要即时输出内容来查看运行情况。
复制代码 代码如下:
header(“Content-type:text/html;charset=utf-8″);
#设置执行时间不限时
set_time_limit(0);
#清除并关闭缓冲,输出到浏览器之前使用这个函数。
ob_end_clean();
#控制隐式缓冲泻出,默认off,打开时,对每个 print/echo 或者输出命令的结果都发送到浏览器。
ob_implicit_flush(1);
复制代码 代码如下:
ob_end_clean();
ob_implicit_flush
通过以下代码中所使用的技术可以实现如下几个可能的需求
1、在有模板的基础上,针对客户的定制下载。
2、一些浏览器本身能够表示的文件类型(如txt文件),可以通过将头信息Content-Type改为 header("Content-Type: application/force-download");进行强制下载。
3、对于一些动态生成文件,比如TXT/CSV等文件,将临时文件及时删除
一、判断大型网站的标准:1.pv(page views)网页的浏览量:概念:一个网站所有的页面,在24小时内被访问的总的次数。千万级别,百万级别,2、uv值(unique vistor)独立访客概念:一个网站,在24小时内,有多少个用户来访问我们的网站。达到10万3、独立ip,重点内容概念:一个网站,在24小时内,有多少个ip来访问我们的网站。
uv值约等于独立ip.如果要考虑局域网,uv值略大于
web开发中有没有碰到需要适时的将结果输出到浏览器页面而不刷新整个页面的需求呢?当你在处理一个过程需要耗时很长,但你又需要适时的知道程序当前的处理状况的时候,该怎么办呢?下面就分享一下如何使用php及时的输出当前结果到浏览器而不刷新整个页面的效果吧。
下面以一个简单的例子来说明这个问题。首先来看一段代码:
if (file_exists($filepath) && is_file($filepath)) {
header('Cache-control: private'); // 发送 headers
header('Content-Type: app
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
$wordStr = "这里是word文档的内容。。。。。。。可以是变量哦。。。。。。。。。。。";
$fileContent = getWordDocument($wordStr);
$fileName = iconv("
* @param array $export_data
* @param boolean $is_seq 是否打印序号
* @param string $savepath 是否保存到服务器
* @desc 使用详情参考 newerp\Application\Orders\Lib\OrderLib\exportOrderList
<?php
$file_url = 'http://www.example.com/file.pdf'; // 文件 URL
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url); // 输出文件内容
这个代码会将浏览器的 Content-Type 设置为 `application/octet-stream`,并且告诉浏览器以二进制方式传输数据。然后,使用 `Content-disposition` 头告诉浏览器将文件作为附件下载,而不是在浏览器中打开。最后,使用 `readfile()` 函数将文件内容输出到浏览器。