我正在嘗試獲取當前頁面 URL,它可能如下所示:
http://www.example.com/login.php/?redirect=myprofile.php
...然后在“重定向”之后獲取所有內容。到目前為止,這是我的代碼:
$uri = $_SERVER['REQUEST_URI'];
$protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
//the complete URL is
$url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
//parse URL and return an array containing the URL components
$url_components = parse_url($url);
//check to see if there is anything after the "?" by looking at "query" in the parsed URL
if (array_key_exists(parse_str($url_components['query'], $params), $url_components))
{
echo "query exists in parse_str";
}
else { echo "query doesn't exist in parse_str"; }
但是,如果索引query不存在于陣列中,我會不斷收到錯誤訊息:
注意:未定義索引:查詢
我試過isset:
if (isset(parse_str($url_components['query'], $params)))
這在加載頁面時給了我一個 HTTP ERROR 500 錯誤。
并empty給我與第一個相同的錯誤。
if (!empty(parse_str($url_components['query'], $params)))
我是 PHP 的新手,所以任何幫助將不勝感激。
uj5u.com熱心網友回復:
您不想檢查函式呼叫回傳。您想檢查query索引是否存在。您可以通過以下方式實作:
$url = 'http://www.example.com/login.php/?redirect=myprofile.php';
$url_components = parse_url($url);
if (!empty($url_components['query'])){
parse_str($url_components['query'], $params);
print_r($params);
} else {
echo "query doesn't exist in parse_str";
}
parse_str然后可以在您擁有query索引時使用。
https://3v4l.org/Vt3aa
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/394875.html
上一篇:我不明白如何使用?currentPage=0&pageSize=18[php]之類的引數從MYSQLI中列出json
下一篇:Python位移與PHP位移
