【问题标题】:Grab end of URL before GET $_parameters [duplicate]在 GET $_parameters 之前抓取 URL 的结尾 [重复]
【发布时间】:2021-05-14 02:52:38
【问题描述】:

我在抓取查询参数之前的 URL 的最后一部分时遇到问题。
我正在使用的当前解决方案是这样的:

$base_url = current_url();
$uri_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$uri_segments = explode('/', $uri_path);
$language = $uri_segments[1];
$end_url = array_pop($uri_segments);

然后我通过 Switch 语句传递 $end_url 以根据值修改表单字段。
有没有我遗漏的东西,或者有没有更有效的方法来获取 URL 的最后一部分? 任何建议都会有所帮助并非常感谢。
谢谢!

【问题讨论】:

  • 您正在使用/ 作为分隔符进行爆炸。因此查询参数将包含在最后一个元素中,因为那里没有/ 分隔符。
  • 您可以使用explode('?', $end_url),然后使用它的第一个元素。
  • 请参阅php.net/manual/en/reserved.variables.server.php#120979,也许您应该使用其他$_SERVER 变量之一,例如PHP_SELFSCRIPT_NAME。它们不包括查询参数。
  • basename($uri_path) - 3v4l.org/pZT83

标签: php arrays url


【解决方案1】:

试试这个

<?php
$url = parse_url('http://example.com/project/controller/action/param1/param2');
$url['sections'] = explode('/', $url['path']);

$last = end($url['sections']);
echo $last;
?>

输出

参数2

【讨论】:

    猜你喜欢
    • 2021-04-28
    • 1970-01-01
    • 2017-10-23
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 2020-05-15
    • 2021-05-05
    相关资源
    最近更新 更多