- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章PHP url的pathinfo模式加载不同控制器的简单实现由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
使用自动加载和解析url的参数,实现调用到不同的控制器,实现了pathinfo模式和普通的url模式 。
文件结构:
|--Controller |--Index |--Index.php 。
|--Application.php 。
Application.php 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
<?php
class
Application{
public
static
function
main(){
header(
"content-type:text/html;charset=utf-8"
);
self::register();
self::router();
}
public
static
function
register(){
spl_autoload_register(
"self::loadClass"
);
}
public
static
function
loadClass(
$class
){
$class
=
str_replace
(
'\\'
,
'/'
,
$class
);
$class
=
"./"
.
$class
.
".php"
;
require_once
$class
;
}
public
static
function
router(){
if
(isset(
$_SERVER
[
'PATH_INFO'
])){
$pathinfo
=
array_filter
(
explode
(
"/"
,
$_SERVER
[
'PATH_INFO'
]));
for
(
$i
=1;
$i
<=
count
(
$pathinfo
);
$i
++){
$key
=isset(
$pathinfo
[
$i
]) ?
$pathinfo
[
$i
] :
''
;
$value
=isset(
$pathinfo
[
$i
+1]) ?
$pathinfo
[
$i
+1] :
""
;
switch
(
$i
) {
case
1:
$_GET
[
'm'
]=ucfirst(
$key
);
break
;
case
2:
$_GET
[
'c'
]=ucfirst(
$key
);
break
;
case
3:
$_GET
[
'a'
]=
$key
;
break
;
default
:
if
(
$i
>3){
if
(
$i
%2==0){
$_GET
[
$key
]=
$value
;
}
}
break
;
}
}
}
$_GET
[
'm'
]=!
empty
(
$_GET
[
'm'
]) ? ucfirst(
$_GET
[
'm'
]) :
'Index'
;
$_GET
[
'c'
]=!
empty
(
$_GET
[
'c'
]) ? ucfirst(
$_GET
[
'c'
]) :
'Index'
;
$_GET
[
'a'
]=!
empty
(
$_GET
[
'a'
]) ?
$_GET
[
'a'
] :
'index'
;
$class
=
"\\Controller\\{$_GET['m']}\\{$_GET['c']}"
;
$controller
=
new
$class
;
$controller
->
$_GET
[
'a'
]();
}
}
Application::main();
|
\Controller\Index\Index.php 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?php
namespace
Controller\Index;
use
Service\User;
class
Index{
public
function
__construct(){
echo
"构造方法<br/>"
;
}
public
function
index(){
new
User();
print_r(
$_GET
);
}
public
function
login(){
echo
"login()"
;
}
}
|
效果:
以上这篇PHP url的pathinfo模式加载不同控制器的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.
最后此篇关于PHP url的pathinfo模式加载不同控制器的简单实现的文章就讲到这里了,如果你想了解更多关于PHP url的pathinfo模式加载不同控制器的简单实现的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我使用以下代码扫描文件夹中的图像: '; } }; ?> 然后我显示单击图像的更大版本,并添加“alt”属性作为标题: $('#id img').click(f
我不敢问一个奇怪的问题,但我想在 Controller 的处理程序方法中更改 HttpServletRequest 的“pathInfo”。请看下面。 我知道我可以使用 getPathInfo() 获
我正在为一个图片网站构建一个 uploader ,上传的大部分照片都是 1232132_1231231_12.jpg 类型的。当我运行 pathinfo() 时,我得到扩展的空白输出。 这是我的代码
我希望自己实现某种 cms。我看到我可以捕获 Apache 环境变量,称为 PATH_INFO,所以这样我可以在我的网站上创建动态部分(就像 joomla 一样)。 例如: stackoverflow
PHP pathinfo() 函数 定义和用法 pathinfo() 函数以数组或字符串的形式返回关于文件路径的信息。 返回的数组元素如下: [dirname]:返回文件路径中的目录部分 [ba
我正在开发一个小函数来接收一个 url 并根据它所在的位置返回一个相对路径。 如果 url 在查询字符串中包含路径,则 pathinfo返回错误的结果。下面的代码演示了这一点: $p = 'http:
我想了解 System.Web.HttpRequest 的 PathInfo 属性及其设置方式。 为什么在下面的例子中它会是空的? var p = new System.Web.HttpRequest
由于 API 限制,我有几个网站仍在 .NET 3.5 上运行。今年我们最终会将这些站点迁移到最新的 .NET 版本。其中一项渗透测试表明可能存在 XSS 漏洞。有问题的 URL 是: Locatio
我想将另一个 servlet 的输出包含到当前响应中。 我可以打电话 request.getRequestDispatcher("/new/url").include(request, respons
按照 setting_up_environment 中的说明进行操作“IntelliJ 平台 SDK 开发指南”和 checkout_and_build_community : 安装了 IDE 已安装
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
如果我想获取带有 pathinfo 函数的 URL 的扩展名,我会这样做: 令我惊讶的是 Apache 显示了以下通知: Notice: Undefined index: extension in
我正在用 ASP.NET 3.5† 编写一个网站,在这个阶段我的大部分 URL 都使用 PathInfo,如下所示: http://localhost:/Account.aspx/Login 唯一的问
我有点困惑,这是预期的行为吗? Javascript - 示例 01 function convertCanvasToImage() { var tem
这是我的代码 $filename = $_FILES[$file_element_name]['name']; $ext = pathinfo($filename, PATHINFO_EXTENSIO
什么是routes.IgnoreRoute("{resource}.axd/{*pathInfo}") 我在项目中找不到任何 .axd 文件,我可以删除此路由规则吗? 最佳答案 .axd 文件实际上并
我发现 PHP 函数 basename() 以及 pathinfo() 对于多字节 utf-8 名称有一种奇怪的行为。他们删除所有非拉丁字符,直到第一个拉丁字符或标点符号。然而,在那之后,后续的非拉丁
当在已知为 UTF-8 的文件名上使用 PHP 的 pathinfo() 函数时,它不会返回正确的值,除非特殊字符前面有“正常”字符。 例子: pathinfo('aä.pdf')返回: Array
我平时用apache,想试试NGINX。 我已将它安装在我的 ubuntu 开发机器上,并设置和开发了一些不同的框架和站点(codeigniter、symfony、laravel 等)。 我遇到的问题
我注意到 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 每当我们创建 MVC 应用程序时总是会设置。 如果这是强制性的事情,为什么我们不通过 II
我是一名优秀的程序员,十分优秀!