php獲取url井號后的參數(描點#后參數)


有時候我們需要獲取url井號后的參數(即描點#后的參數),如下面的鏈接:
http://www.xindingyue.com/example/#comment-1314 
現在要獲取#號后面的comment-1314,如何通過php獲取呢?

首先聲明php是無法直接獲取的,因為這是向瀏覽器客戶端發送的參數,在服務端壓根就不接受這樣的參數,$_SERVER["REQUEST_URI"]變量里是不會包含#號后面的東西的,所以無法像我們平時用php處理url那樣了,那到底如何獲取呢?

這是向客戶端發送的參數,所以獲取他只能去到客戶端里獲取,這里有個思路是先用前台javascript腳本獲取后再把獲取到的參數寫入到cookie,下面是javaScript代碼
<script> 
var query = location.href.split('#'); 
document.cookies = 'anchor=' + query[1]; 
<script>

再后就可以通過php讀取cookie里的參數了:
<?php 
 echo $_COOKIE['anchor']; 
 ?>

二者完整結合的代碼
<script language="javascript"> 
    query=location.href.split("#"); 
    //簡單判斷是不是我們要的參數 
    if(query[1] && query[1].indexOf("comment") >= 0){ 
        document.cookie='anchor='+query[1]; 
        if (query[1] != "<?php echo $_COOKIE['anchor']; ?>") { 
            //第一次獲取后,cookie還沒生效需重載一次 
            window.location.reload(); 
        } 
    } 
 </script> 
 <?php echo $_COOKIE['anchor']; ?>

這個用javaScript寫入cookie方法獲得井號后的參數,方便是很方便,但是第一次載入這個頁面,都要reload()一次,用戶體驗不是很好吧,改用ajax方法可以解決這個問題,如果對ajax方法熟悉的話參考上面的代碼加以修改也是很簡單的事情,具體就不寫代碼了,因為ajax涉及到不是單頁的事。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM