如何使用php从该表单的URL获取地址栏参数?

如何使用php从该表单的URL获取地址栏参数?,php,Php,我看到一个具有以下URL方案的论坛(IPS): www.example.com/index.php?/topic/12345 其中显示主题ID 12345 我对php非常陌生,我想知道,他们到底做了什么来理解上面的请求要求主题ID 12345?我只知道如何使用$\u POST和$\u GET收集信息。以下是我对后者的尝试: echo "The user wants to see the topic ID " . $_GET["topic"]; 但这需要表单的URL www.example.c

我看到一个具有以下URL方案的论坛(IPS):

www.example.com/index.php?/topic/12345
其中显示主题ID 12345

我对php非常陌生,我想知道,他们到底做了什么来理解上面的请求要求主题ID 12345?我只知道如何使用
$\u POST
$\u GET
收集信息。以下是我对后者的尝试:

echo "The user wants to see the topic ID " . $_GET["topic"];
但这需要表单的URL

www.example.com/index.php?topic=12345
那么,他们是如何实现这一计划的呢?

有两种方法:

  • 您可以使用url重写将web服务器上的url重写为带有查询变量的url(您可以在这里找到很多关于url重写的内容)
  • 您可以分析服务器变量,如
    $\u server['REQUEST\u URI']
    ,以拆分和分析php脚本中的url。您仍然需要重写以确保所有请求都通过您的脚本,并且不会转到未找到的页面

  • 他们可能正在使用类似于名为
    mod\u rewrite
    的apache模块的东西
    mod_rewrite
    用于重写URL。在这种情况下?topic=12345将被重写/翻译为topic/12345/

    有一篇不错的文章概述了一些你可以用
    mod_rewrite
    做的很酷的东西。您将需要
    使用mod_rewrite创建漂亮的url
    部分来了解如何使用它创建外观更好的url