【问题标题】:How to include/require a php file in php file on bluehost server如何在 bluehost 服务器上的 php 文件中包含/需要 php 文件
【发布时间】:2015-09-01 15:15:20
【问题描述】:

我已经尝试了以下所有方法,甚至尝试使用 require 但没有任何效果。

<?PHP include "myfile.php"; ?>
<?PHP include "/myfile.php"; ?>
<?PHP include "./myfile.php"; ?>
<?PHP include(__DIR__,"myfile.php"); ?>
<?PHP include "/public_html/myfile.php"; ?>

我的所有文件都在蓝色主机服务器上,每当它从myfile.php(位于public_html 目录中)创建对象时,它就会给出[01-Sep-2015 20:56:07 America/Denver] PHP Warning: include(): Failed opening '/MyConnection.php' for inclusion (include_path='.:/usr/php/54/usr/lib64:/usr/php/54/usr/share/pear:/home1/user/public_html') in /home1/user/public_html/myfile.php on line 29 [01-Sep-2015 20:56:07 America/Denver] PHP Fatal error: Class 'MyConnection' not found in /home1/user/public_html/myfile.php on line 32

我已经调试了我的代码,每个语句都可以正常工作,除非或直到与myfile.php 无关,并且此代码在我的带有本地文件的 wampp 服务器上也可以正常工作。任何帮助将不胜感激。谢谢。

【问题讨论】:

  • status 500 不是表示文件本身有问题吗?
  • 还可以对文件运行语法检查...或尝试直接从命令行访问。 @PaulCrovella 有正确的想法,它必须产生错误。
  • 它在我的计算机(本地)上运行良好,并将文件包含在 php 页面中,但在这里不起作用。感谢大佬回复

标签: php require internal-server-error server-side-includes


【解决方案1】:

正如 Paul 在 cmets 中所说,每当您遇到 PHP 500 错误时,您都需要查阅错误日志。

但是,当您以 / 为前缀时,您使用的是绝对路径,我 99% 确定您不应该这样做。

<?PHP include "/myfile.php"; ?>

这意味着您实际上是在尝试从服务器的/ 目录中读取 myfile.php。这与在 HTML 中使用 Web 根目录不同。

您应该使用相对路径或使用完整的绝对路径。请注意,__DIR__ 在大多数情况下没有目录分隔符后缀(除非它是根目录)。

<?PHP include(__DIR__,"myfile.php"); ?>

需要:

<?PHP include(__DIR__, DIRECTORY_SEPARATOR, "myfile.php"); ?>

您还可以修改包含路径。求助于关于 get_include_path 和 set_include_path 的文档。

【讨论】:

  • &lt;?PHP include(__DIR__, DIRECTORY_SEPARATOR, "myfile.php"); ?&gt; 甚至不起作用,它实际上并没有加载整个页面。
  • 然后做一些调试,检查你的错误日志,打印出(__DIR__, DIRECTORY_SEPARATOR, "myfile.php")
  • 我已经调试过了,它显示任何与包含文件相关的东西都会引起麻烦,其余的都很好。
  • 当我使用(__DIR__, DIRECTORY_SEPARATOR, "myfile.php")时它不会加载页面的内容并且日志只说[01-Sep-2015 11:10:33 America/Denver] PHP Parse error: syntax error, unexpected ',' in /home1/domain/public_html/myfile.php on line 25
【解决方案2】:

尝试使用绝对路径

<?php include ($_SERVER['DOCUMENT_ROOT']."/myfile.php"); ?>

【讨论】:

  • 它的行为与问题中的上述代码相同。 :(
  • 给出错误[01-Sep-2015 21:26:05 America/Denver] PHP Notice: Undefined index: pageState in /home1/user/public_html/myfile.php on line 13 [01-Sep-2015 21:26:09 America/Denver] PHP Parse error: syntax error, unexpected 'var' (T_VAR), expecting variable (T_VARIABLE) in /home1/user/public_html/includefile.php on line 3
  • 这个确实有效,我认为我的代码在某个地方存在问题。我正在使用它调用一个函数,但我没有使用美元符号 ($)
【解决方案3】:

使用

&lt;?PHP include "var/www/public_html/myfile.php";

【讨论】:

  • 这是有效的,因为它是包含文件的绝对路径
  • 检查文件的权限..应该是755
  • 尝试在根目录中包含一个不同的文件。如果可行,请删除文件并上传新文件
  • 问题是,在服务器上使用 about 语句不包含任何文件,但在我的 wampp 或 localhost 上运行良好。
  • 编辑您的问题并将详细信息与文件结构一起发布。
【解决方案4】:

我这样做的方法是我有一个文件 (init.php),该文件包含在站点中的每个文件中,该文件检测它在服务器上的路径并将其保存到一个常量以在包含其他文件时使用文件。我总是将 init.php 文件放在网站的根目录中。

if(!defined('ABSPATH')){ define('ABSPATH', dirname(__FILE__) . '/'); }
include( ABSPATH . 'filename.php');

【讨论】:

  • 不起作用,输出与&lt;?PHP include "filename.php"; ?&gt;相同
  • 报错[01-Sep-2015 21:18:10 America/Denver] PHP Notice: Undefined index: pageState in /home1/user/public_html/myfile.php on line 13 [01-Sep-2015 21:18:13 America/Denver] PHP Parse error: syntax error, unexpected 'var' (T_VAR), expecting variable (T_VARIABLE) in /home1/user/public_html/includefile.php on line 3
猜你喜欢
  • 1970-01-01
  • 2011-12-15
  • 2016-09-02
  • 2014-08-10
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多