【问题标题】:PHP cannot load whole web pagePHP无法加载整个网页
【发布时间】:2020-02-18 09:42:28
【问题描述】:

这是一个奇怪的问题,我很抱歉我真的无法解释这是什么问题。

我只能说发生了什么。

我有一个php文件,它打印html页面,我无法复制我的整个代码,它太长了,所以我只是打错了一个简单的版本

<html>
// ... some code

$count = 0;
$query = $mysql->query($sql);
while($row = $mysql->fetch_array($query)) {
    // ... some php code

    echo "<div id='id{$count}'>.....lots of html code and some php variable </div>"  // it is a long html code

    echo "<ul id='ul{$count}'> ..... almost the same as above, lost html </ul>"

    echo ...
    echo ...

    // ... some php code

    $count++;

}

// ... lots of other code
</html>

正常情况下是没有问题的,但是这次会在循环中读取大约800条记录,然后只能加载大约80条。

我认为可能发生了一些错误,所以我尝试在循环中打印一些东西,然后发生了一些奇怪的事情。

我加了这个
var_dump("!@#!@#!@#!@#");
然后,我刷新页面,现在可以加载96条记录(我刷新页面服务次数,总是96)

然后我将其更改为 var_dump("!@#!@#!@#!@#$$$$$");
现在可以加载257条记录

之后,我尝试更改打印的字符串,每次更改时,记录数都会更改,直到我使用此:var_dump("!@#!@#!@#!@#!@#!@#!@#!@#", $count);。可以加载整个页面。

【问题讨论】:

  • 您查看过您的 PHP 错误日志吗?你的 MySQL 错误日志?或者你的APache错误日志???
  • 您使用的是mysql_mysqli_ 还是PDO 数据库扩展??
  • 我将开始从视图渲染中分离逻辑。这将帮助您了解错误在哪里;在逻辑计算或渲染过程中。之后,就是调试和检查错误日志的问题了。
  • 引用弗洛伊德的话,“外面有人吗?”
  • @RiggsFolly 这个项目是基于 php5.6 和 mysql_.

标签: php


【解决方案1】:

一些调试技巧:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

您似乎完全达到了一些大小限制,并且脚本执行(或数据处理)在某一点停止,在 69 处达到 - 或每条记录输出更多字符 - 在 257 条记录处。

也许

我认为这与查询的数量无关,而是与您生成的输出量有关。否则,您的 var_dump 虚拟对象的大小不会有任何区别。

【讨论】:

  • 太棒了! 对 PHP 的输出缓冲设置了一个限制,这会导致问题。 这个技巧对我有帮助,我不知道在哪里可以修改 fastcgi 的配置,但我在这里找到了另一个答案 stackoverflow.com/q/12165810/8654320,我在我的 php 代码顶部添加了标题,它可以工作
  • 是的,你可以用我找到的链接编辑你的答案,我会标记这个答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-24
  • 2017-11-24
  • 2023-04-08
  • 2017-06-21
相关资源
最近更新 更多