【问题标题】:How to remove the URI from URL using PHP?如何使用 PHP 从 URL 中删除 URI?
【发布时间】:2017-08-03 00:05:38
【问题描述】:

我有一个名为 test.com 的虚拟主机,当我进入我现在正在开发的模块时,它是 test.com/module 但我需要删除 URI执行必要的过程,直到之后我才需要 URI。

当我加载页面时显示 test.com,当我访问模块时,我得到 test.com/module。 我需要访问该模块,继续向我展示 test.com 以了解当对 $_SERVER ["REQUEST_URI"] 执行 echo 时它向我展示了什么'//' 而不是主机也不是 uri

问候。

注意:我使用的是 apache

【问题讨论】:

  • 我不确定您使用的确切 php 代码,但$_SERVER ["REUQEST_URI"] 中有一个拼写错误。这应该是$_SERVER["REQUEST_URI"]
  • 对不起,我有手指错误,我需要从 URL 中删除模块的一部分。 test.com/moduletest.com 但不会干扰视图或功能

标签: php apache server


【解决方案1】:

一个 parse_url() 示例

<?php
$url = 'http://username:password@hostname:9090/path?arg=value#anchor';

var_dump(parse_url($url));
var_dump(parse_url($url, PHP_URL_SCHEME));
var_dump(parse_url($url, PHP_URL_USER));
var_dump(parse_url($url, PHP_URL_PASS));
var_dump(parse_url($url, PHP_URL_HOST));
var_dump(parse_url($url, PHP_URL_PORT));
var_dump(parse_url($url, PHP_URL_PATH));
var_dump(parse_url($url, PHP_URL_QUERY));
var_dump(parse_url($url, PHP_URL_FRAGMENT));
?>

或者您可以在第一次出现 ? 之前使用 strtok 获取字符串?

$url=strtok($_SERVER["REQUEST_URI"],'?');

【讨论】:

  • 谢谢,但我有 $_SERVER["REQUEST_URI"] 这给了我 URI,我需要从 test.com/module 中删除 URI 并获取 test .com
【解决方案2】:

如果只想解析URL的域部分,可以使用

<?php echo $_SERVER['HTTP_HOST']; ?>

【讨论】:

  • 好的,但是当我回显到 $_SERVER['HTTP_HOST'] 时打印我 test.com 但我只需要打印 //好像它是主机的根目录
  • 抱歉,我不清楚您想要实现什么。你能举例说明你需要什么吗?
  • 我有 test.com/module 这是我的模块的 URL,但我需要从 URL 中删除 /module 的部分来获取,在 URL 中只有 test.com 等,虽然我有视觉和模块的功能,但我需要制作 echo $ _SERVER ["REQUEST_URI"] 只打印我@ 987654323@ 而不是 URL 或 URI,就好像它正在显示正在执行的主机的根目录
  • 无论 URL 是什么,您都想始终打印//?或者你想要绝对的 PHP 路径?在这种情况下,请使用$_SERVER["DOCUMENT_ROOT"]。否则,请举个例子。
  • 我想打印 // 第一次为页面充电,但第一次充电时它会抛出我 test.com/module 我需要做一个echo$ _SERVER ["REQUEST_URI"] 显示 // 而不是 /module /
猜你喜欢
  • 1970-01-01
  • 2013-05-09
  • 2013-04-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多