2009-12-09 122 views

回答

25

请参阅PHP Get Current URL

有时就没有那么简单 因为人们可能会想到来获得当前 URL中使用它您的应用程序中。 这是我用来取 当前URL并在 脚本中使用它的片段。当前网址(无论是http 还是https)现在是一个局部变量,您可以随意使用 。

$url = "http".(!empty($_SERVER['HTTPS'])?"s":""). 
"://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; 

注:使用任何敏感,就像一个SQL查询之前,您应该新郎此值。

+0

服务器的端口,如果你使用重写后的附加参数,获取完整的URL缺少.. – b3wii 2017-02-24 11:24:48

+0

脚本,就像/x.php/123/456那么使用REQUEST_URI将包含这些参数。 SCRIPT_NAME可能会更好。 – 2017-09-15 11:20:22

2

如果您需要像这样的信息,通常可以方便地查看phpinfo()的输出,然后阅读那些看起来不错的项目的文档。

请记住,有些人可能是你的服务器上是正确的,但对别人略有不同..取决于操作系统,HTTP服务器等

0

假设你在访问

How do I get the current URL of my script using PHP?

然后 echo $ _SERVER ['SERVER_NAME']; //这将返回ü是主机名: -

stackoverflow.com/

回声$ _ SERVER [ 'REQUEST_URI']; //它只返回当前网址的文件名 将返回

“/ questions/1871770/how-do-i-get-the-current-url-of-my-script-using-php”

而不是主机名。

+0

请勿使用* PHP_SELF *。 – Gumbo 2009-12-09 09:30:08

+0

是的... PHP_SELF只会返回文件...而不是其他参数..如果需要完整路径,那么他必须使用“REQUEST_URI”,并且我编辑了我的答案。 – ravindrakhokharia 2009-12-11 04:26:40

+1

更不用说PHP_SELF容易受到XSS的影响。 – 2009-12-11 04:35:07

3

如果你想知道你的服务器上的脚本的名称,然后..

$file = $_SERVER["SCRIPT_NAME"]; 
echo $file; 

$ _ SERVER [“SCRIPT_NAME”]会给你当前执行的脚本路径,您的服务器不相关在浏览器的网址上。

3

对于www.example.com/files/script.php

$_SERVER['SCRIPT_NAME'] = /文件/脚本。PHP

,如果你想在当前目录网址:

dirname($_SERVER['SCRIPT_NAME']) = /文件

0

你好,这是你的问题的解决

//这个抓取页面网址

$url=$_SERVER['REQUEST_URI']; 
echo "$url<br />"; 

//它瓦特生病打印

//这个

$host=$_SERVER['HTTP_HOST']; 
echo "$host<br />"; 

获取主机//你可以通过这个

$fullurl="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
echo $fullurl;