php获取当前页面完整URL地址方法
php获取当前页面完整URL地址
这篇文章主要介绍了php获取当前页面完整URL地址的函数
使用PHP编写程序的时候,我们常常想要获取当前页面的URL。下面提供一个用于获取当前页面URL的函数以及使用方法:
示例一:
<?php // 说明:获取完整URL function curPageURL() { $pageURL = 'http'; if ($_SERVER["HTTPS"] == "on") { $pageURL .= "s"; } $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]; } return $pageURL; } ?>
定义该函数之后就可以直接调用了:
<?php echo curPageURL(); ?>
上面的函数可以获取当前页面完整的URL,即你在浏览器地址栏看到的内容。但是,有时候我们不想要URL中的参数( ? 号后面的内容),如:http://www.scutephp.com/hello.html?u=123,只想获取http://www.scutephp.com/hello.html,你可以将以上函数按示例二修改。
示例二:
<?php // 说明:获取无参数URL function curPageURL() { $pageURL = 'http'; if ($_SERVER["HTTPS"] == "on") { $pageURL .= "s"; } $pageURL .= "://"; $this_page = $_SERVER["REQUEST_URI"]; // 只取 ? 前面的内容 if (strpos($this_page, "?") !== false) { $this_pages = explode("?", $this_page); $this_page = reset($this_pages); } if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $this_page; } else { $pageURL .= $_SERVER["SERVER_NAME"] . $this_page; } return $pageURL; } ?>
当然也可以采用 $_SERVER['PHP_SELF'] (该变量不返回URL中的参数),
示例三:
<?php // 说明:获取无参数URL function curPageURL() { $pageURL = 'http'; if ($_SERVER["HTTPS"] == "on") { $pageURL .= "s"; } $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"].":" . $_SERVER["SERVER_PORT"] . $_SERVER['PHP_SELF']; } else { $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER['PHP_SELF']; } return $pageURL; } ?>
另外,$_SERVER['REQUEST_URI'] 和 $_SERVER['REQUEST_URL'] 是有稍微区别的:
$_SERVER["REQUEST_URI"] 返回完整的路径,包含参数 ( /directory/file.ext?query=string )
$_SERVER['REQUEST_URL'] 只返回文件路径,不包括参数,( /directory/file.ext ),和 $_SERVER['PHP_SELF'] 差不多,只不过在有些服务器上$_SERVER['REQUEST_URL']不可用!
注意:URL使用rewrite规则的时候,$_SERVER['PHP_SELF'] 和 $_SERVER["REQUEST_URL"] 可能不会返回你想要的东西
最后提醒一点,$_SERVER["REQUEST_URI"] 只有 apache 才支持,想要获取$_SERVER['REQUEST_URI'] 值,可以使用以下方案:
<?php // 说明:获取 _SERVER['REQUEST_URI'] 值的通用解决方案 function request_uri() { if (isset($_SERVER['REQUEST_URI'])) { $uri = $_SERVER['REQUEST_URI']; } else { if (isset($_SERVER['argv'])) { $uri = $_SERVER['PHP_SELF'] .'?'. $_SERVER['argv'][0]; } else { $uri = $_SERVER['PHP_SELF'] .'?'. $_SERVER['QUERY_STRING']; } } return $uri; } ?>
再为大家分享两种解决方法:
第一种方法:
<?php /** * 获取当前页面完整URL地址 */ function get_url() { $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://'; $php_self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']; $path_info = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : ''; $relate_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.$_SERVER['QUERY_STRING'] : $path_info); return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url; } echo get_url(); ?>
第二种方法:
javascript实现
top.location.href 顶级窗口的地址 this.location.href 当前窗口的地址
PHP实现
#测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br>"; #localhost //获取网页地址 echo $_SERVER['PHP_SELF']."<br>"; #/blog/testurl.php //获取网址参数 echo $_SERVER["QUERY_STRING"]."<br>"; #id=5 //获取用户代理 echo $_SERVER['HTTP_REFERER']."<br>"; //获取完整的url echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; #http://localhost/blog/testurl.php?id=5 //包含端口号的完整url echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; #http://localhost:80/blog/testurl.php?id=5 //只取路径 $url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]; echo dirname($url); #http://localhost/blog
希望本文所述对大家学习php程序设计有所帮助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP是一種非常流行的伺服器端程式語言,它在網站開發中被廣泛應用。其中,檔案上傳和下載是網站常用的功能之一,而PHP提供了豐富的函數和技巧來實現這些功能。在本文中,我們將詳細介紹PHP中的檔案上傳和下載技巧,讓你能夠更有效率地開發網站。文件上傳檔案上傳是指把本機電腦中的檔案傳送到遠端伺服器,上傳檔案後我們可以對這些檔案進行儲存、處理和展示等操作。在PHP中

PHP快手API介面呼叫技巧:如何處理介面回傳的錯誤訊息在使用PHP進行快手API介面呼叫時,我們常會遇到介面回傳錯誤的情況。對於處理介面傳回的錯誤訊息,我們需要進行適當的處理和回饋,以便提高應用程式的穩定性和使用者體驗。本文將介紹一些處理介面傳回錯誤訊息的技巧,並提供對應的程式碼範例。使用try-catch擷取異常在呼叫API介面時,可能會發生一些異常錯誤,

隨著網路的快速發展,越來越多的網站需要實現資料分頁功能,以提高使用者的瀏覽體驗。在Web開發中,PHP是最受歡迎的伺服器端程式語言之一,而資料分頁功能是PHP開發中不可或缺的技術。本文將介紹PHP中的分頁技術在框架中的應用方法,並比較不同的分頁方案的優缺點。一、傳統PHP分頁方法在傳統PHP開發中,實作資料分頁功能需要編寫較多的程式碼,並且需要在每個頁面中重

替換PHP中的換行符號是在實際開發中經常會遇到的問題,特別是在處理文字資料時。換行符在不同作業系統中的表示方式可能不一樣,通常在Windows系統中是"",在Linux系統中是""。因此,我們需要對換行符號進行統一處理,以確保文字資料的格式正常。本文將深入探討PHP中替換換行符的技巧,並提供具體的程式碼範例。 1.使用PHP內建函數處理換行符PHP提供了一些內建函

PHP程式設計技巧:快速定位數組缺失數字的方法在程式設計中,常常會遇到需要檢查數組中是否缺少某些數字的情況。這時候,我們需要一種快速有效的方法來定位數組中缺少的數字,以便及時處理。本文將介紹一種基於PHP的程式設計技巧,透過具體的程式碼範例來展示快速定位數組中缺少數字的方法。 1.方法一:使用循環遍歷數組首先,我們可以透過循環遍歷數組的方式來檢查數組中缺少的數字。具體步驟

PHP程式設計技巧:如何處理圖片縮放在現代網頁設計中,圖片是不可或缺的一部分,而圖片縮放是常見的操作之一。無論是在展示圖片集合,還是在回應不同大小裝置的需求上,圖片縮放都起到了重要的作用。本文將介紹如何使用PHP程式語言處理圖片縮放,並附上程式碼範例供參考。一、使用GD庫進行圖片縮放GD庫是PHP中一個強大的影像處理庫,我們可以使用它來實現圖片縮放功能。首先,確保

PHP高並發處理技巧解析隨著網路的發展,對於網站的並發訪問量要求也越來越高。而PHP作為一種開發網站的程式語言,面對高並發的存取壓力,需要一些特殊的處理技巧來提高效能和穩定性。本文將介紹一些PHP高並發處理的技巧,並提供程式碼範例。使用PHP-FPMPHP-FPM(FastCGIProcessManager)是PHP官方提供的進程管理器,它可以有效地

掌握PHP開發的50個功能實現技巧與經驗分享身為PHP開發者,我們時刻都在追求高效率、高品質的程式碼實作。為了提高開發效率和程式碼品質,我們需要累積一些經驗和技巧,以應對各種複雜的開發需求和挑戰。在本文中,我將分享50個實現各種功能的PHP開發技巧與經驗,希望對大家的PHP開發之路有所幫助。使用合適的框架:選擇和熟悉一個適合自己的PHP框架,可以提高開發效率和
