2011-01-21 79 views
0

我不知道如何從PHP中的querystring獲取數據。從PHP中的查詢字符串獲取數據

我想從access_token檢索數據。

http://www.mygridview.com/sephora/index.php?mod=config#access_token=170791786296375|983b6aefceafdb1cf2d5a122-100001848355029|Hc8qGl6xgpXlmhOWQrLv910on_8&expires_in=0

我如何在PHP這樣做呢?

+0

正確答案完全取決於您打算如何將該URL提供給PHP。請澄清。 [另外,這至少是一式四份](http://stackoverflow.com/search?q=fragment+url+php),所以你應該指出你嘗試過哪些方法,以及爲什麼它仍然不起作用。 – Gordon 2011-01-21 12:02:22

+0

[PHP&Hash/Fragment部分的URL]的可能重複(http://stackoverflow.com/questions/1162008/php-hash-fragment-portion-of-url) – Gordon 2011-01-21 12:03:16

+0

您試圖解析哪個URL?當前頁面的URL,還是從其他地方獲得的? – Gareth 2011-01-21 12:10:12

回答

1

URL的錨部分永遠不會被髮送到服務器,因此如果您嘗試從當前URL加載此信息,它將不會在那裏。

至於服務器而言,這是由瀏覽器加載的URL是http://www.mygridview.com/sephora/index.php?mod=config

這是可能的(甚至可能),一些JavaScript是使用錨信息來恢復頁面的狀態使用AJAX進行修改後。在這種情況下,您需要查看Javascript以獲取發送到服務器的錨點信息。

0

您獲取了url,然後在url上應用分析函數。 例如:

$url = 'http://username:[email protected]/path?arg=value#anchor'; 

print_r(parse_url($url)); 

Output:: 
Array 
(
    [scheme] => http 
    [host] => hostname 
    [user] => username 
    [pass] => password 
    [path] => /path 
    [query] => arg=value 
    [fragment] => anchor 
) 

這個片段是你的要求。如果我是對的,那麼試試這個n取得成功。 :) 感謝

用於獲取當前URL ::

function getInstance($uri = 'SERVER') 
    { 

      if ($uri == 'SERVER') 
      { 
       if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off')) { 
        $https = 's://'; 
       } else { 
        $https = '://'; 
       } 

       if (!empty ($_SERVER['PHP_SELF']) && !empty ($_SERVER['REQUEST_URI'])) { 
        $theURI = 'http' . $https . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 

        if (strlen($_SERVER['QUERY_STRING']) && strpos($_SERVER['REQUEST_URI'], $_SERVER['QUERY_STRING']) === false) { 
         $theURI .= '?'.$_SERVER['QUERY_STRING']; 
        } 
       } 
       else 
       { 
        $theURI = 'http' . $https . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']; 
        if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) { 
         $theURI .= '?' . $_SERVER['QUERY_STRING']; 
        } 
       } 

       $theURI = urldecode($theURI); 
       $theURI = str_replace('"', '"',$theURI); 
       $theURI = str_replace('<', '&lt;',$theURI); 
       $theURI = str_replace('>', '&gt;',$theURI); 
       $theURI = preg_replace('/eval\((.*)\)/', '', $theURI); 
       $theURI = preg_replace('/[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']/', '""', $theURI); 

     } 
     echo (string)$theURI; 
    }