我正在寻找一种我想用url构建的动态模板引擎。所以,如果我的网址是localhost / root / this / is / path / to / signup.php,php代码应该在目录中注册文件signup.php / / / / path / to /
这次我正在使用url的数组,如下面的代码所示:
$url = isset($_GET['url']) ? $_GET['url'] : null;
$url = rtrim($url, '/');
$url = explode('/', $url);
if (empty($url[0])) {
$url[0] = "path/startpage.php";
}
if (isset($url[2])) {
require "path/error.php";
} else if (isset($url[1])) {
$file1 = 'path/' .$url[0].'/'.$url[1].'/'.$url[1].'.php';
if (file_exists($file1)) {
require $file1;
} else {
require "error.php";
}
} else if (isset($url[0])) {
$file0 = 'path/'.$url[0].'/'.$url[0].'.php';
if (file_exists($file0)) {
require $file0;
} else {
require "path/error.php";
}
}
但是使用这个脚本我必须为每个案例做这个,这不是那么好。我希望有一个解决方案,其中代码正在查找整个URL,转到目录并需要错误或文件(如果存在)。
你能帮我吗?
答案 0 :(得分:0)
Titon \ View库非常容易处理:https://github.com/titon/View
如果为模板传入路径数组,它将生成动态查找路径。 https://github.com/titon/View/blob/master/src/Titon/View/View.php#L127
示例:
$view = new Titon\View\View();
$view->addPath('/path/to/views/');
$parsed = $view->run(['path', 'to', 'lookup/folder', 'templateName]);
还可以查看测试以查看其实际效果:https://github.com/titon/View/blob/master/tests/Titon/View/ViewTest.php