0

我是制作网站的新手。作为一个个人项目,我想做一个 URL 缩短服务。一切都很好,除了一件事。

我无法处理传入的请求。

例如。如果有人键入 www.examp.le/Dnd5Je,我希望能够从 URL 中获取最后 6 个字母,然后在数据库中查找它。

问题是如果不使用 $_GET 数组并在 URL 中使用诸如 ?id=77 之类的标识符,我无法弄清楚如何获取字母。

我有点迷茫,如果对如何提取最后 6 个字母有任何帮助,我将不胜感激。谢谢

4

5 回答 5

3

您可以在文件中重写 URL .htaccess

RewriteEngine On
RewriteRule ^([^/.]+)/$ index.php?target=$1
RewriteRule ^$ index.php

上面的代码将重写一个 URL,例如www.examp.le/foobar123/to www.examp.le/index.php?target=foobar123。然后,您可以使用该$_GET变量来读取 的值$_GET['target']

于 2012-06-09T13:57:36.437 回答
1

你可以使用basename()

$str = basename($url);

这里的工作示例

于 2012-06-09T13:57:35.530 回答
1

尝试使用$_SERVER['REQUEST_URI'].

于 2012-06-09T13:57:41.137 回答
1

$_GET 数组没有被填充的原因是因为在 www.examp.le/Dnd5Je 中接收的是一个没有 GET 信息的有效 URL。GET 信息位于问号 (?) 之后作为键/值对

为了实现您想要实现的目标,您需要让您的网络服务器“重写”URL。如何执行此操作取决于您使用的 Web 服务器。对于 Apache,可以在此处找到文档

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

于 2012-06-09T13:59:36.750 回答
0

你可以使用$_SERVER['REQUEST_URI']. 它将包含前导斜杠,即/Dnd5Je来自您的示例,您可以轻松删除它。

有关更多信息,请考虑$_SERVER 手册

于 2012-06-09T13:59:56.047 回答