标签: ob-start

PHP - 嵌套输出缓冲

我的功能有:

ob_start();
//Include of some files
$content = ob_get_contents();
ob_end_clean();
Run Code Online (Sandbox Code Playgroud)

现在在那些包含是另一个使用相同代码的函数,它们似乎发生冲突.有可能像这样使用它们吗?

php nested buffering ob-start

14
推荐指数
2
解决办法
8224
查看次数

方法ob_start和ob_flush不起作用,为什么?

我希望在长时间的导入操作中使用ob_start()/ ob_flush()to,给我一些进展.

以下是我正在做的简单概述:

<?php
ob_start ();

echo "Connecting to download Inventory file.<br>";
$conn = ftp_connect($ftp_site) or die("Could not connect");

echo "Logging into site download Inventory file.<br>";
ftp_login($conn,$ftp_username,$ftp_password) or die("Bad login credentials for ". $ftp_site);

echo "Changing directory on download Inventory file.<br>";
ftp_chdir($conn,"INV") or die("could not change directory to INV");

//      connection, local, remote, type, resume
$localname = "INV"."_".date("m")."_".date('d').".csv";
echo "Downloading Inventory file to:".$localname."<br>";

ob_flush();
flush();
sleep(5);

if (ftp_get($conn,$localname,"INV.csv",FTP_ASCII)) 
{
    echo "New Inventory File Downloaded<br>";
    $datapath = $localname; …
Run Code Online (Sandbox Code Playgroud)

php ob-start progress-bar

10
推荐指数
3
解决办法
5万
查看次数

PHP的ob_flush()导致错误

当我ob_flush()在我的localhost(通过MAMP)上调用PHP的函数时,我收到以下错误:

注意:ob_flush()[ref.outcontrol]:无法刷新缓冲区.没有缓冲区要冲洗.

我能找到的唯一解决方案就是用它作为前缀@,但这对我来说似乎不是一个真正的解决方案.是什么导致了这个问题?

php buffering ob-start

9
推荐指数
2
解决办法
7925
查看次数

为什么我需要结束我的ob_start()?

php文档建议我应该用ob_end_flush()结束每个ob_start().我在网站的每个页面上使用一个,只是为了允许我在应用程序的任何地方使用firephp日志方法.

该应用程序工作正常,但我想知道是否有任何我不知道可能有害的事情.

php ob-start

9
推荐指数
1
解决办法
5509
查看次数

不能在输出缓冲显示处理程序中使用输出缓冲

我重新安装了Apache,并从PHP 5.3切换到5.6.一切正常,但我得到这个错误,当调用ob_start():

Cannot use output buffering in output buffering display handlers
Run Code Online (Sandbox Code Playgroud)

我试图在PHP中启用输出缓冲,但我仍然收到此错误:

output_buffering = 4096
Run Code Online (Sandbox Code Playgroud)

php apache output-buffering ob-start

9
推荐指数
3
解决办法
1万
查看次数

8
推荐指数
2
解决办法
3万
查看次数

ob_start不执行回调

我遇到了ob_start的问题.不知道这笔交易是什么,但我已经把它归结为最简单的测试案例......但仍无济于事.我希望这段代码能够输出'bar'到stdout,但是我什么也没收到,错误日志中没有错误.

<?php
function gzhandler_ex($buffer, $mode)
{
    echo 'bar';
}

ob_start('gzhandler_ex');
echo 'foo';
ob_flush(); 
Run Code Online (Sandbox Code Playgroud)

我以前从未见过这个,但我通常不会使用这样的回调.

php ob-start

7
推荐指数
1
解决办法
872
查看次数

PHP ob_start vs opcode APC,解释差异和现实世界的用法?

前提:我不是要重新发明轮子,我只是想了解一下.

输出缓存可以轻松实现:

//GetFromMyCache returns the page if it finds the file otherwise returns FALSE
if( ($page = GetFromMyCache($page_id)) !== FALSE )
{
   echo $page; //sending out page from cache
   exit();
}

//since we reach this point in code, it means page was not in cache
ob_start(); //let's start caching

//we process the page getting data from DB

//saving processed page in cache and flushing it out
echo CachePageAndFlush(ob_get_contents());
Run Code Online (Sandbox Code Playgroud)

另一篇文章中解释得很好,并在另一篇文章解释.

但接下来是APC (默认情况下将包含在PHP6中).

  1. APC是否曾经安装在服务器上的模块,现有的 PHP代码运行速度更快, …

php caching apc ob-start

7
推荐指数
1
解决办法
1407
查看次数

循环中的ob_start()

我在使用event_()循环和使用ob_start()和ob_get_clean()循环内部时遇到问题.

这是我的功能:

protected function renderEmail() {
$template = $this->_case.".php";
if(is_file($this->_dir.DS.$template)) {
    ob_start();
    if(!empty($this->_records)) {               
        foreach($this->_records as $key => $value) {
            ${$key} = $value;
        }
    }
    require_once($this->_dir.DS.$template);
    return ob_get_clean();
} else {
    $this->_errors[] = "Email template not found";
    return false;
} }
Run Code Online (Sandbox Code Playgroud)

此功能基本上生成电子邮件的内容,然后返回它.

我遇到的问题是当我遍历多个电子邮件地址 - 发送相同的电子邮件内容时 - 只有第一个返回内容 - 以下是空白 - 任何想法为什么?

php ob-start ob-get-contents

6
推荐指数
1
解决办法
2895
查看次数

当没有输出时,ob_start是无用的吗?

我刚看到这里的链接与我的问题几乎相同,但我想确保理解.这是链接: ob_start()在这里的作用是什么

所以,他的代码没有真正的"输出" - 没有回声,没有HTML,几乎没有.但他有一个ob_start.我和他一样,是传统代码,我的没有输出.它只是更新一些表.我在这个链接中看到的所有答案都解决了ob_start的实际功能 - 我认为只有一个解决了他的真正问题,即"这个代码中ob_start的作用是什么?".那么,如果代码是"幕后"脚本,不输出html或回声或其他任何东西,输出缓冲区的东西是不是没用?谢谢

php ob-start

5
推荐指数
1
解决办法
163
查看次数