在php中的子文件夹中设置处理脚本

时间:2014-05-09 19:51:20

标签: php ajax include directory

我正在尝试清理我的网站文件夹结构。我在根目录中有太多处理脚本。原因是,如果我将它们移动到子文件夹并从那里调用它们,它们将无法工作。

例如。

root directory
  - images folder
  - css folder
  - js folder
  - includes folder
  - admin folder
index.php
ajax.php 

假设我将ajax.php移动到包含文件夹,它将如下所示。

root directory
  - images folder
  - css folder
  - js folder
  - includes folder
    - ajax.php
  - core folder
  - template folder
index.php

现在每个页面都需要init.php。在例如ajax.php中。

<?php require_once 'core/init.php'; ?>
// rest of the code

我遇到的问题是,只要ajax.php在includes文件夹中,init.php文件就不会运行。我收到类似这样的错误。

Warning: require_once(core/init.php): failed to open stream: 

如果我将ajax.php移回根目录,它将正常工作。

在index.php上,这就是我调用ajax.php

的方式
<a href="includes/ajax.php?id="324"></a>

core / init.php在&#34;模板中需要时工作正常&#34;夹。

也许有人可以告诉我这方面的解决方案?

1 个答案:

答案 0 :(得分:1)

尝试使用PHP的chdir功能。这将更改PHP环境正在使用的工作目录,从而更改包含函数正在查找的相对路径。理想情况下,您希望使用项目的根调用chdir,因此当您执行require_once('core/init.php');时,您最终无法从core目录拨打电话,而是从.目录拨打电话。