dynamic php short url


dynamic php short url

所以自2006年以来我一直在PHP中使用过程编程风格。但在过去4年多的时间里,我错过了很多时间,没有变得更好。

最近我开始更多地认识到面向对象编程。

最让我注意到的是MVC风格的组织和短url。

url不是"index.php?page=profile&member=1",而是"page/profile/member/1"。

我正在尝试学习oop & &;MVC架构使用广泛的资源,但它仍然是有点太多了,我掌握。甚至一个月后!

我一直只是使用基本函数(等){},if,else,and,或语句和SQL查询来完成工作。到目前为止,这些知识基本上涵盖了我所需要的一切。

我想知道是否有一种方法可以使用我的基本过程编程风格,仍然实现缩短的url ?

我试过下面的方法

. htaccess

RewriteEngine On
RewriteCond $1 !^(index'.php)
RewriteRule ^(.*)$ index.php?page=$1 [L]

index . php

<?php
$links = parse_ini_file('links.ini');
if (isset($_GET['page']) && array_key_exists($_GET['page'], $links)) {
    require $links[$_GET['page']];
}
else {
    echo '
    Home page or unknown link
    ';
}

links.ini

members  = pages/members.php
profile  = pages/profile.php

这种方法可以简单地缩短URL,但我不知道如何使它与profile/user/1 aka index.php?page=profile&user=1一起工作(用户变量为数据库查询)

任何帮助将非常感激!!

您可以使用所谓的前端控制器来完成此操作。这篇Sitepoint文章可能会帮助你理解这个概念,但它并不一定是面向对象的。

基本上,您只需将所有请求直接指向index.php:

,而不是进行任何实际重写。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php

现在,在index.php中,您可以将请求与parse_url分开,并根据需要处理请求。