2016-10-27 35 views
0

所以我决定使用Ajax处理我的项目上的表单。PHP:在init.php中需要动态文件路径

和往常一样,我通过Ajax将接收到的输入数据发送给process.php,然后应该使用classes文件夹中的Input.php类对其进行验证。

然而,正如我的init.php文件路径是硬编码,该脚本在AJAX /类检索输入信号类/ Input.php代替类/ Input.php

我可以以某种方式调整我的init文件,还是我必须拿出一个不同的目录结构?

这里是当前结构

ajax/ 
    process.php 
classes/ 
    Input.php 
core/ 
    init.php 
js/ 
    ajax.js 
form.php 

开始process.php的

<?php 
require_once '../core/init.php'; 
[...] 

有关部分的init.php

spl_autoload_register(function($class) { 
    require_once 'classes/'.$class.'.php'; 
}); 

我试图做一些像require_once'init.php?subdir = true',但作为包括不是一个HTTP请求,它显然不工作。

如果这里有人会帮我一把,我会非常高兴!

如果有什么不清楚的地方,请询问!

回答

2

可以使用例如这样的事情:

spl_autoload_register(function($class) { 
require_once __DIR__.'/../classes/'.$class.'.php'; 

});

所以你的init.php将需要通过相对于他自己的目录路径的其他脚本。我会说这是不太可能改变init.php文件的位置,但即使你这样做,你只需要在init.php中做一些小的修改

+0

该死的,为什么我不能自己想这么简单的事情呢?我甚至用google搜索了一下'__FILE__',但是不知道如何在初始化文件中使用它。 – Noniq

+0

非常感谢@krasipenkov! – Noniq