gpt4 book ai didi

php - 动态php短网址

转载 作者:bug小助手 更新时间:2023-10-28 01:29:28 29 4
gpt4 key购买 nike

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

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

对我来说最重要的是 MVC 风格的组织和短 url。

网址不是“index.php?page=profile&member=1”,而是“page/profile/member/1”。

我正在尝试使用广泛的资源来学习 OOP&MVC 架构,但是对于我来说掌握起来还是有点多。即使过了一个月!

我一直只使用基本函数(等){}、if、else、and、or 语句和 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 一起使用(用户变量是数据库查询)

任何帮助将不胜感激!!!

最佳答案

您可以使用所谓的 front controller 来完成此操作。 .这个Sitepoint article可能有助于理解这个概念,但它不一定是面向对象的。

基本上,您只需将所有请求定向到 index.php,而不是进行任何实际的重写:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php

现在,在 index.php 中,您可以使用 parse_url 将请求分开并随心所欲地处理请求。

关于php - 动态php短网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39874539/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com