【问题标题】:PHP included functions not working in firefox 5PHP 包含的函数在 Firefox 5 中不起作用
【发布时间】:2011-07-06 16:20:52
【问题描述】:

我有 2 个文件:

创建.php:

<html>
<body>
<?php
require("Test.php");
hello();
echo "does this work?";
?>
</body>
</html>

和Test.php:

<?php
function hello(){
    echo "hello";
}
?>

但是当我打开 create.php 时,什么都没有打印出来(甚至“这行得通吗?”。如果我从 Test.php 调用 hello() 它工作正常。也就是说,它似乎没有在之后执行代码包含。我做错了什么?

编辑:代码似乎在我的 IE 8 安装中运行良好,但在我的 FF 5 安装中却不行(诚然,它有很多插件)。

再次编辑:问题是需要刷新页面缓存。从来没有问题。该代码有效。对不起,大家。

【问题讨论】:

  • Test.php,如果要包括在内,不应该包含您拥有的所有 HTML;它在调用者中重复。
  • 这并不是真正的问题解决方案。就个人而言,我认为这是一个路径问题,所以也许可以提及一下?
  • test.phpcreate.php在同一个目录吗?
  • 我删除了 HTML 标签,但问题仍然存在。
  • 您已将 require 注释掉。什么原因?你有错误吗?将 include 更改为 require 并在此处更新您收到的任何错误...

标签: php function include call


【解决方案1】:

帮自己一个忙,打开错误报告。将以下代码放在create.php 的开头,让我们知道您收到的错误消息。

<?php

ini_set('display_errors', 'on');
error_reporting(E_ALL);
require_once('Test.php');

?>

我的猜测是路径问题。

【讨论】:

  • 好的...它在 IE 8 中有效,但在我的(不可否认的过度插件填充)FF 5 中无效。grr...
【解决方案2】:

首先,您的 PHP 文件中不需要 html 标记。第二:您需要执行您的功能。现在你只定义了它。试试

Test.php

<?php
function hello(){
    echo "hello";
}
hello();
?>

并确保两个文件在同一个目录中。

【讨论】:

  • html 标签已被删除:没有解决方案。另请注意,create.php 尝试调用函数“hello()”并失败。那是我的问题。
  • 这是@Jay 目前正在做的事情,只是在不同的文件中。
  • 它们在同一个目录中......彼此相邻。包含有点作用,因为如果我在 Test.php 中调用 hello,它会打印出来。但是,如果调用在 create.php 中,则不会打印。
【解决方案3】:

使用 dirname(FILE) 而不是直接包含

例如

如果我有目录

/var/www/html/include

test.php 位于 include 中,您的脚本在 html 中,然后使用 dirname(__FILE__).'/includes/test.php

如果您需要返回目录,请使用 dirname(dirname(__FILE__))

取决于多少级。

它也使它成为动态的,所以命令行和浏览器总是会找到文件

【讨论】:

    【解决方案4】:

    试试下面的 create.php 代码

    <?php
    require('Test.php');
    ?>
    <html><body>
    <?php 
    hello(); 
    echo 'does this work?';
    ?>
    </body>
    </html> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      • 2016-02-17
      • 1970-01-01
      • 2014-05-15
      • 2014-05-23
      • 2017-06-29
      相关资源
      最近更新 更多