whe*_*hys 3 php path relative-path include
我的app结构如下
application -> views -> templates
// some more files
page.php
-> controllers
home.php
-> models
items.php
router.php
index.php
Run Code Online (Sandbox Code Playgroud)
第一种情况:
的index.php
include 'application/routes.php';
Run Code Online (Sandbox Code Playgroud)
routes.php文件
require "controllers/home.php";
Run Code Online (Sandbox Code Playgroud)
控制器/ home.php
require '/application/models/clusters.php'; //works
require 'application/models/clusters.php'; //works
require '../models/clusters.php'; //doesn't work
Run Code Online (Sandbox Code Playgroud)
为什么第一行有效但不是最后一行?
第二种情况:
的index.php
include 'application/views/page.php';
Run Code Online (Sandbox Code Playgroud)
page.php文件
glob("application/views/templates/*.php") // array of files
glob("templates/*.php") // empty array
Run Code Online (Sandbox Code Playgroud)
我认为我对php中的路径如何工作的理解有问题,但我无法弄清楚它是什么.有时路径似乎是相对于当前脚本,相对于index.php而言相对于其他时间,但不一定与我在启动路径时相关联/
请试试这个:
require 'application/controllers/home.php';
require 'application/models/clusters.php';
Run Code Online (Sandbox Code Playgroud)
问题是PHP中的路径始终相对于第一个文件路径,在本例中为index.php.所以你必须包含目录'application'.
另一种方法是使用set_include_path:http://php.net/manual/pt_BR/function.set-include-path.php
编辑
要查看include_path:
echo ini_get('include_path');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13609 次 |
| 最近记录: |