我正在尝试在网站上设置一些php包含,但我无法让它们工作。测试代码不会在index.php中回显。如果有人可以在代码中看到错误,我会很感激。感谢
codes.php
<?php
$test1 = '123456';
$test2 = '1234567';
$test3 = '12345678';
?>
的index.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>
答案 0 :(得分:3)
如果您include
文件为http://www.mydomain.com/includes/codes.php
,那么PHP将与您在浏览器中转到http://www.mydomain.com/includes/codes.php时完全相同:没有。
您需要添加本地文件:include 'includes/codes.php';
您也不需要多次包含同一个文件。
答案 1 :(得分:1)
你不应该使用绝对路径,你应该使用相对。我宁愿使用__DIR__
文件的目录。如果在include中使用,则返回包含文件的目录。这相当于dirname( FILE )。除非它是根目录,否则此目录名称没有尾部斜杠。 (在PHP 5.3.0中添加。)
答案 2 :(得分:1)
将<?php include('..'); ?>
放在文件的顶部,然后您就可以相应地回显每个变量。您不需要多次包含相同的位置。
答案 3 :(得分:1)
我建议你看一下这个问题:Should I allow 'allow_url_fopen' in PHP?
您正在尝试从include访问外部php文件,这是一个漏洞问题,必须避免。
答案 4 :(得分:1)
如果您使用包含URL(http),则服务器将首先解释该文件,您将获得输出。因此,您无法访问codes.php中定义的变量。
如果您的codes.php与index.php位于同一目录中,则可以通过
包含它 include(dirname(__FILE__) . DIRECTORY_SEPARATOR . "codes.php";
或
include('codes.php')
FILE 是PHP中使用当前文件路径的神奇变量。如果你包含一个同时包含include的文件(如果你使用静态文件pathes那些包含可能会弄得一团糟),这会派上用场。 DIRECTORY_SEPARATOR在Linux服务器上使用“/”,在Windows服务器上使用“\”。