📜  php 获取完整的 url - PHP (1)

📅  最后修改于: 2023-12-03 15:18:31.995000             🧑  作者: Mango

PHP获取完整的URL

在Web开发中,我们经常需要获取当前页面的完整URL,用来进行一些相应的操作。在PHP中,我们可以使用以下几种方式来获取完整的URL。

方法一:使用$_SERVER变量

PHP中的$_SERVER变量可以用来存储服务器和执行脚本的信息。我们可以使用其中的$_SERVER['REQUEST_URI'] 和 $_SERVER['HTTP_HOST']信息来获取完整的URL。示例代码如下:

$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
echo $url;

其中,$_SERVER['HTTP_HOST']表示主机名,$_SERVER['REQUEST_URI']表示请求的URI地址。通过将它们拼接在一起,就可以得到完整的URL。

方法二:使用$_SERVER['PHP_SELF']变量

$_SERVER['PHP_SELF']变量可以用来获取正在执行脚本的文件名。此时,我们需要用$_SERVER['SERVER_NAME'] 和 $_SERVER['HTTPS']信息来获取当前页面的协议名和主机名。示例代码如下:

$http = empty($_SERVER['HTTPS']) ? 'http://' : 'https://';
$url = $http.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'];
echo $url;
方法三:使用parse_url()函数

parse_url()函数可以将URL解析为数组,通过对解析后的数组进行操作,来获取需要的信息。示例代码如下:

$url = "http://www.example.com/test/index.php?id=1";
$url_arr = parse_url($url);
$scheme = $url_arr['scheme']; // 返回协议名(http)
$host = $url_arr['host']; // 返回主机名(www.example.com)
$path = $url_arr['path']; // 返回路径(/test/index.php)
$query = $url_arr['query']; // 返回查询字符串(id=1)
echo $scheme.'://'.$host.$path.'?'.$query; // 输出完整URL

以上是三种常用的方法,可以通过不同的方式来获取完整的URL。在实际开发中,可以根据具体需求选择相应的方法。