首页 > 解决方案 > PHP 包括来自许多子文件夹

问题描述

亲爱的,

我处于非常紧迫的境地:-(

几个月前我开始学习 Javascript,我写了一些页面来娱乐我的残疾侄女到她这个星期五的生日。单独的页面是可以的。但是我感到很遗憾,我仍然无法设置 php 包括。我有两个较早的网站,它们的 php 代码运行良好,所以我曾经将代码从这些网站复制到我的新 index.php 中。当然,我更改了文件夹的名称和文件的名称。我的两个网站有菜单和子菜单,我的新网站只有菜单没有子菜单,但每个文件都有自己的文件夹。我很快把它翻译成英文并使它更短,但原理是一样的。我试过了:

<?php
$x = isset($_GET['x']) ? $_GET['x'] : 'hello';  

if (isset($x) && preg_match('/^[a-zA-Z0-9_-]+$/', $x))  {
    if (file_exists ("../pokus/".$x.".php"))  {
        include "../pokus/".$x.".php"; 
    } else {
        include (__DIR__)."/404.php";
    }
}
?>

但据称这些文件“在此服务器上找不到”。自然,它们都被上传到我的服务器上。

我的 HTML 代码:

<ul> 
    <li>
        <a href="/hello/"<?php echo $x == "hello" ? 'class="choice"' : '';?>>
            <img src = "pictures/hello.jpg" width = "320" height = "240"> 
        </a>
    </li>
    <li>
        <a href="/folder1/file1/" <?php echo $x == '../file1' ? 'class="choice"' : '';?>>
            <img src = "pictures/pict1-menu.jpg" width = "320" height = "240">
        </a>
    </li>
    <li>
        <a href="/folder2/file2/" <?php echo $x == '../file2' ? 'class="choice"' : '';?>>
            <img src = "pictures/pict2-menu.jpg" width = "320" height = "240">
        </a>
    </li>
    <li>
        <a href="/folder3/file3/" <?php echo $x == '../file3' ? 'class="choice"' : '';?>>
            <img src = "pictures/pict3-menu.jpg" width = "320" height = "240">
        </a>
    </li>
</ul>

在名为 pokus 的文件夹中,我有 index.php 和 hello.php(=她生日的一些句子)。然后我里面有子文件夹folder1和file1.php,里面有子文件夹folder2和file2.php等。我被迫使用很多子文件夹,因为每个子文件夹包含许多图片A1.jpg,A2.jpg ... D4.jpg使用JS FOR循环因此无法将它们混合在一起。

我很惊讶甚至没有文件 hello.php 坐在 index.php 旁边我无法加载。我的 Apache 说这个文件“在这个服务器上没有找到”。但是文件 hello.php 会在打开 index.php 时立即加载!为什么 Apache 如此偏执?

这是现场插图: http: //pokus.zlatberry.cz/

有人可以花时间帮助我吗?提前谢谢了!

标签: php

解决方案


我认为问题是您的文件夹名称很好,但您的链接是 hello 而不是 hello.php

如果您提供 php 扩展名,它会正确显示文件。


推荐阅读