簡體   English   中英

在PHP中解析URL查詢

[英]Parsing URL query in PHP

假設有一個www.domain.org?x=1&y=2&z=3的網址,那么在不使用GET或REQUEST的情況下,在php中分離出網址的查詢元素的智能方法是什么?

  $url = parse_url($url);
  echo $url[fragment];    

我認為不可能單獨返回查詢部分嗎? 據我所知,查詢只會說x=1&y=2&z=3但如果我錯了請告訴我。 否則,您將如何解析$url[query]

編輯:片段應該是查詢。 對不起,我正在學習!

您可以執行第二步並使用parse_str解析查詢字符串。

$url = 'www.domain.org?x=1&y=2&z=3';
$url_parts = parse_url($url);
parse_str($url_parts['query'], $query_parts);
var_dump($query_parts);

我假設你的意思是查詢字符串而不是片段,因為片段沒有標准模式。

parse_url函數返回包括query在內的幾個組件。 要解析它,你應該運行parse_str

$parsedUrl = parse_url($url);
parse_str($parsedUrl['query'], $parsedQueryString);

如果您只是要解析HTTP請求URL:

  • 使用$_REQUEST['x']$_REQUEST['y']$_REQUEST['z']變量來訪問x,y,z參數;

  • 使用$_SERVER['QUERY_STRING']來獲取整個URL查詢字符串。

上面的一些答案我得到了錯誤,但他們確實引導我找到了正確的答案。 多謝你們。

 $url = 'www.domain.org?x=1&y=2&z=3';
 $query = $url[query]; 
 parse_str($query);
 echo "$x &y $z";

這輸出: 1 2 3 ,這是我想弄清楚的。

作為一個沒有錯誤檢查的單線

parse_str(parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY), $query);

$query將包含查詢字符串參數
與PHP的$_GET ,這將適用於任何長度的查詢參數

我強烈建議使用這個url包裝器https://github.com/weew/url (我寫的)

它能夠解析復雜的URL,如protocol://username:password@subdomain.domain.tld:80/some/path?query=value#fragment ,還有更多好東西

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM