【问题标题】:PHP file include stops executionPHP 文件包含停止执行
【发布时间】:2011-05-27 17:37:46
【问题描述】:

我的 index.php 页面正文中有以下代码:

echo "Begin <br />";
include('test.shtml');
echo "Importing dbRead.php here <br />";
include(dirname(__FILE__) . '/dbRead.php');
echo "We have included dbRead.php here <br />";

页面上的输出是:

开始
里面 test.shtml
在此处导入 dbRead.php

这些文件都在同一个目录中。怎么回事?

编辑:dbRead.php 是一个类。我的 WAMP 服务器可以很好地解析它,但上传后的 Web 服务器不能解析它。它包含一个具有正确格式的方法和一个构造函数的类。

【问题讨论】:

  • 我忘了在 test.shtml 中添加,只是:在 test.shtml 中
  • - 您可以编辑您的问题(而不是评论)- dbRead.php 里面有什么? - 有什么问题?据我所知,一切正常。
  • 它也可以在我的 WAMP 服务器上运行,但在我发布到网络服务器时却不行。
  • 您的示例代码没有标题中提到的include_once()。如果您的问题是在 dbRead 包含之后没有任何反应,并且以下回显似乎也不起作用,那么它可能是引用脚本中的错误(或只是 exit;)。尝试提高error_reporting 只是为了看看。
  • 您应该尝试在脚本顶部添加error_reporting(E_ALL),看看是否有任何错误被php吐出。

标签: php html include


【解决方案1】:

据我所知,所有的回声都是在include(dirname(__FILE__) . '/dbRead.php'); 之前执行的,但在那之后没有可见的回声输出。有一些可能,例如:

  • dbRead.php 中,您使用例如ob_start();(参见documentation),因此执行回显,但不会发送到浏览器,
  • 您有一些错误会终止dbRead.php 中的脚本,但您关闭了错误报告(请参阅documentation),
  • 您在包含的文件中调用了exit(参见documentation)或die()(参见documentation),

【讨论】:

  • dbRead.php 中有错误。仍然不明白为什么会出现错误,但确实存在。
  • 哈哈哈服务器老了只支持PHP4>.
【解决方案2】:

根据您的输出,问题不是includes(顺便说一句,dirname(__FILE__) 是不必要的,除非文件本身(index.php)也包含在另一个文件中)...问题是您有一个dbRead.php 中的错误或者它不存在,或者它停止进一步执行(使用exit die 等)。

你的 DIR 看起来像吗:

/
/index.php
/test.shtml
/dbRead.php

??还是您希望dirname(__FILE__) 以某种方式转移目录?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多