php urlを解析しurl中のパラメータとurlパラメータを取得する4つの方法
4045 ワード
次のコードはphpがurlを解析し、urlのパラメータを得ます.コードは次のようになります.
php urlパラメータの取得方法を4つの例で説明します.
既知のURLパラメータの場合、私たちは自分の状況に応じて$_を採用することができます.GETは、対応するパラメータ情報($_GET['name'])を取得する.では、未知の場合、URL上のパラメータ情報をどのように取得するのでしょうか.
1つ目、利用$SERVER内蔵配列変数
比較的オリジナルの$SERVER['QUERY_STRING']で取得します.URLのパラメータは、通常、この変数を使用して返されるデータと似ています.name=tank&sex=1ファイル名を含める必要がある場合は$SERVER["REQUEST_URI"](類似を返します:/index.php?name=tank&sex=1)
第二に、pathinfo内蔵関数を利用する
コードは次のとおりです.
結果は次のとおりです.
3つ目は、parse_を利用するurl内蔵関数
コードは次のとおりです.
結果は次のとおりです.
第四にbasename内蔵関数を利用する
コードは次のとおりです.
結果は次のとおりです.
また,自分で正則マッチングの処理方式で必要な値を取得する.この方式は比較的正確で、効率はしばらく考慮しない...次に、実践の下で正則的な処理方法を拡張します.
コードは次のとおりです.
結果は次のとおりです.
string 'content' (length=7)
'c' => string 'index' (length=5)
'a' => string 'lists' (length=5)
'catid' => string '6' (length=1)
'area' => string '0' (length=1)
'author' => string '0' (length=1)
'h' => string '0' (length=1)
'region' => string '0' (length=1)
's' => string '1' (length=1)
'page' => string '1' (length=1)
*/
function convertUrlQuery($query)
{
$queryParts = explode('&', $query);
$params = array();
foreach ($queryParts as $param) {
$item = explode('=', $param);
$params[$item[0]] = $item[1];
}
return $params;
}
/**
*
* @param $array_query
* @return string string 'm=content&c=index&a=lists&catid=6&area=0&author=0&h=0®ion=0&s=1&page=1' (length=73)
*/
function getUrlQuery($array_query)
{
$tmp = array();
foreach($array_query as $k=>$param)
{
$tmp[] = $k.'='.$param;
}
$params = implode('&',$tmp);
return $params;
}
php urlパラメータの取得方法を4つの例で説明します.
既知のURLパラメータの場合、私たちは自分の状況に応じて$_を採用することができます.GETは、対応するパラメータ情報($_GET['name'])を取得する.では、未知の場合、URL上のパラメータ情報をどのように取得するのでしょうか.
1つ目、利用$SERVER内蔵配列変数
比較的オリジナルの$SERVER['QUERY_STRING']で取得します.URLのパラメータは、通常、この変数を使用して返されるデータと似ています.name=tank&sex=1ファイル名を含める必要がある場合は$SERVER["REQUEST_URI"](類似を返します:/index.php?name=tank&sex=1)
第二に、pathinfo内蔵関数を利用する
コードは次のとおりです.
結果は次のとおりです.
Array
(
[dirname] => http://localhost //url
[basename] => index.php //
[extension] => php //
[filename] => index //
)
*/
?>
3つ目は、parse_を利用するurl内蔵関数
コードは次のとおりです.
結果は次のとおりです.
Array
(
[scheme] => http //
[host] => localhost //
[path] => /index.php //
[query] => name=tank&sex=1 //
[fragment] => top //
)
*/
?>
第四にbasename内蔵関数を利用する
コードは次のとおりです.
結果は次のとおりです.
index.php?name=tank&sex=1#top
*/
?>
また,自分で正則マッチングの処理方式で必要な値を取得する.この方式は比較的正確で、効率はしばらく考慮しない...次に、実践の下で正則的な処理方法を拡張します.
コードは次のとおりです.
結果は次のとおりです.
Array
(
[0] => Array
(
[0] => name=tank
[1] => sex=1#top
)
[1] => Array
(
[0] => name=tank
[1] => sex=1
)
[2] => Array
(
[0] =>
[1] => #top
)
)
*/
?>