【问题标题】:How to get value after / in URL如何在 / 在 URL 之后获取值
【发布时间】:2018-09-14 04:41:54
【问题描述】:

我试图在 PHP 的 URL 中获取 / 之后的值。

我尝试过使用$_GET['va'],但这仅适用于以下情况,

http://localhost:8080/default?va=xxx

我想要得到的是这个,

http://localhost:8080/default/xxx

如何在 PHP 中获得 / 之后的 xxx 值。

非常感谢任何帮助。


编辑

感谢所有回答的人,我不太清楚我想要什么。看来我正在寻找的内容被称为 pretty URLclean URL

我按照Pedro Amaral Couto's 的回答解决了这个问题。


这就是我所做的;

我在我的 Apache 服务器上修改了我的 .htaccess 文件,并添加了以下代码。

RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ default.php?page=$1
RewriteRule ^([a-zA-Z0-9]+)/$ default.php?page=$1

然后我将我的default.php 文件修改为 GET ['page']

<?php
   echo $_GET['page'];
?>

它返回“/”之后的值。

【问题讨论】:

  • 尝试使用var_dump($_GET)
  • 你需要解析 $_SERVER['REQUEST_URI']
  • 实际上您的 URL 中的值将是 default/xxx 除非您真正的问题是“如何获取 URL 中最后一个斜杠后的内容”
  • 调用第二个 URL 时您的脚本是否已经触发?这是基于.htaccess 中的重写规则吗?
  • 我想你可能想看看一些 REST 概念和 PHP 路由器

标签: php html server


【解决方案1】:

您想要制作所谓的“pretty URLs”(和other names)。

您需要适当地配置 HTTP 服务器,否则您会收到 404 错误。如果您使用的是 Apache,这意味着您可以配置 .htaccess 并激活 RewriteEngine 模块。您还需要添加正则表达式。

StackOverflow 中已经有一个关于该主题的问题:

以下是另一篇可能有帮助的相关文章:

您可以在 Wordpress 中看到它是如何完成的:

如果你遵循这些,你将不需要更改 PHP 代码,你可以使用 $_GET 来检索“xxx”。

【讨论】:

    【解决方案2】:

    您正在寻找:$_SERVER['REQUEST_URI']

    为访问此页面而提供的 URI;例如,'/index.html'

    【讨论】:

    • 如果你不能使用没有 404 错误的 URL,你就不能使用它。
    • 嗨@PedroAmaralCouto,请注意!可能是 OP 要求 /default/xxxx/my_php_page.php ;) 你猜他/她要求漂亮的网址,但不清楚。我只是在回答这个问题:“如何在 URL 中 / 之后获取值”
    【解决方案3】:
    basename(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
    

    【讨论】:

      【解决方案4】:

      所以$_GET 全局变量用于解析查询字符串。

      您正在寻找的是 $_SERVER['REQUEST_URI'] 全局变量:

      $url = $_SERVER['REQUEST_URI'];
      

      $url 现在将包含路径的完整 URL。您需要使用 explode('/', $url) 将完整的 URL 分解为一个小字符串数组并从那里解析它。

      例子:

      $pieces = explode('/', $url);
      // this will get you the first string value after / in your URL
      echo $pieces[0];
      

      【讨论】:

        【解决方案5】:

        您可以通过 2 种方式进行操作。

        1- 执行这些步骤

        • 获取网址
        • / 分解
        • 获取数组的最后一个元素

        2- 添加.htaccess 并将该值映射到某个变量

        RewriteRule ^default/(.*) page.php?variable=$1
        

        你可以得到$_GET['variable']

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-02-14
          • 2013-04-18
          • 1970-01-01
          • 1970-01-01
          • 2019-09-24
          • 1970-01-01
          • 2015-11-24
          • 1970-01-01
          相关资源
          最近更新 更多