我正在尝试使用正确的路径parse_url
来$_SERVER['REQUEST_URI']
显示正确的页面,但是我遇到的问题是只有我的index.php
页面正在显示。
我页面的 urlindex.php
应该localhost/mvc-framework
是正确的,但是当我接受时:
localhost/mvc-framework/file.php
它也显示了我的index.php
. 基本上我在某个文件夹之后输入的任何内容也会显示index.php
页面......
我真的希望有人能帮助我,因为我已经为此苦苦挣扎了将近 3 个洞天。 我可能很愚蠢:/
我在“mvc-framework”中有所有文件,在里面我有一个index.php
将所有内容联系在一起的文件和 3 个文件夹:“controller”、“model”、“views”。
在控制器文件夹中,我有一个名为 main.php 的文件,我正在尝试获取 url:
<?php
/* controller/main.php
*/
class mainController
{
public $load;
public $urlValues;
public function __construct()
{
$url = parse_url($_SERVER['REQUEST_URI']);
$url = explode('/', $url['path']);
$this->urlValues = array('controller' => $url[1]);
//index page
if ($this->urlValues['controller'] == "mvc-framework") {
$text = array("key" => "Hello");
$this->load = new load();
$this->load->view('index.php', $text);
}
//register page
elseif ($this->urlValues['controller'] == "mvc-framework/test.php") {
$text = array("key" => "Test");
$this->load = new load();
$this->load->view('test.php', $text);
} else {
echo 'error';
}
}
}
在“模型”文件夹中,我有一个名为 load.php 的文件,它将获取 url 并将其指向视图文件夹中的正确文件...
<?php
/* model/load.php
*/
class load
{
/* This function takes parameter
* $file_name and match with file in views.
*/
function view($file_name, $data = null)
{
if (is_readable('views/' . $file_name)) {
if (is_array($data)) {
extract($data);
}
require 'views/' . $file_name;
} else {
echo $this->file;
die ('404 Not Found');
}
}
}
在视图文件夹中,我有 2 个文件,一个 index.php 和一个 test.php ...
这是我的 bootstrap/index.php 文件,它位于根文件夹中,并将所有内容绑定在一起......
<?php
/* index.php
*/
require_once 'model/load.php';
require_once 'controller/main.php';
new mainController();