-4

我正在尝试在网站上设置一些 php 包含,但我无法让它们工作。测试代码不会在 index.php 中回显。如果有人可以在代码中看到错误,我将不胜感激。谢谢

代码.php

<?php

$test1 = '123456';
$test2 = '1234567';
$test3 = '12345678';

?>

索引.php

<html>
<head>
<title>Testing</title>
</head>
<body>

<span><?php include 'http://www.mydomain.com/includes/codes.php'; echo "$test1"; ?></span>
<span><?php include 'http://www.mydomain.com/includes/codes.php'; echo "$test2"; ?></span>
<span><?php include 'http://www.mydomain.com/includes/codes.php'; echo "$test3"; ?></span>

</body>
</html>
4

5 回答 5

3

如果您include将文件设置为,PHP 将看到与在浏览器中访问http://www.mydomain.com/includes/codes.phphttp://www.mydomain.com/includes/codes.php时完全相同的内容:什么都没有。

您需要包含一个本地文件include 'includes/codes.php';

您也不需要多次包含同一个文件。

于 2013-06-06T14:32:56.060 回答
1

您不应该使用绝对路径,而应该使用相对路径。我宁愿用__DIR__

文件的目录。如果在包含中使用,则返回包含文件的目录。这相当于 dirname( FILE )。此目录名称没有尾部斜杠,除非它是根目录。(在 PHP 5.3.0 中添加。)

于 2013-06-06T14:33:51.827 回答
1

<?php include('..'); ?>放在文件的顶部,然后您将能够相应地回显每个变量。您不需要多次包含同一个位置。

于 2013-06-06T14:35:09.727 回答
1

我建议你看看这个 SO 问题:我应该在 PHP 中允许 'allow_url_fopen' 吗?

您正在尝试从 include 访问外部 php 文件,这是一个漏洞问题,必须避免。

于 2013-06-06T14:37:05.727 回答
1

如果您将包含与 URL (http) 一起使用,服务器将首先解释该文件,然后您将获得输出。因此,您无法访问您在代码.php 中定义的变量。

如果您的代码.php 与您的 index.php 位于同一目录中,您可以通过以下方式包含它

 include(dirname(__FILE__) . DIRECTORY_SEPARATOR . "codes.php";

或者

 include('codes.php')

FILE是 PHP 中的一个魔术变量,它使用当前文件的路径。如果您包含一个再次包含包含的文件,这会派上用场(如果您使用静态文件路径,这些包含可能会造成混乱)。DIRECTORY_SEPARATOR 在 Linux 服务器上使用“/”,在 Windows 服务器上使用“\”。

于 2013-06-06T14:40:51.080 回答