URL を解析するための 3 つの php 関数
URL を介して値を渡すことは、PHP で値を渡す重要な手段です。そのため、
など、URL で渡されるパラメータの名前がわかっている場合は、URL 内のパラメータを頻繁に解析する必要があります。/index.php?name=tank&sex=1#top
$_GET['name']、$_GET['sex'] を通じて送信されたデータを取得できます。しかし、これらの変数の名前がわからない場合はどうなるでしょうか?これはこのブログ記事を書く目的でもあります。いつも忘れてしまうので、次回どこでも検索しないようにマークしました。
PHP 変数を介して渡される URL とパラメーター文字列を取得できます
$_SERVER["QUERY_STRING"] name=tank&sex=1
$_SERVER["REQUEST_URI"] /index.php?name=tank&sex=1
JavaScript では、document.referrer などのソース URL を取得することもできます。
1、パス情報を使用します
1.2.$test = pathinfo("http://localhost/index.php");??
3.print_r($test); ??
4.?>??
5. 結果は次のとおりです??
7.(??
8.??? ] => ; http://localhost //URLのパス?? [basename] => //完全なファイル名?? ?? [拡張子] = > //ファイル名サフィックス??
12.)? ?php
$ test = pathinfo("http://localhost/index.php");
print_r($test);
?>
結果は以下のようになります
配列
(
?? ? [dirname] => http://localhost //URL のパス
??? [basename] =>index.php? //完全なファイル名
??? [拡張子] => //ファイル名サフィックス
??? [ファイル名] => インデックス
)2、parse_url
を使用します
1.2.$test = parse_url("http://localhost/index.php?name=tank&sex=1#top");?? 3.print_r($test);??
4.?>??
6.Array??
8. ??? [スキーム] => http //使用するプロトコル?? [ホスト] => 10.??? [パス] = > /index.php //パス??
11.??? [クエリ] =>
12.??? ] = > top //次のルートのアンカーポイント??
$test = parse_url("http://localhost/index.php?name) =tank&sex=1 #top");
print_r($test);
?>
結果は次のようになります
Array
(
??? [scheme] = > http //使用するプロトコル
??? [ホスト] => ホスト名
??? [パス] => //パス
? ? [query] => name =tank&sex=1 //渡されたパラメータ
??? [fragment] => top //basename
を使用
1.2.$test =basename("http://localhost/index.php?name=tank&sex=1#top");?? 3.echo $test;??
4.?>??
6.index.php?name=tank&sex=1#top?
echo $test;
?>
結果は次のとおりです。
index.php?name=tank&sex=1#top上記の 3 つの方法を使用すると、基本的に必要なものを取得できます。実際、正則化を使用する別の方法もあり、これによっても必要なデータを迅速に取得できます。
1.2.preg_match_all("/(w+=w+)(#w+)?/i","http://localhost/index.php?name= Tank&sex=1#top",$match);??
3.print_r($match);?>>??
4. 結果は次のとおりです??
5.Array??
6 .(??
7.??? [0] => 配列??
8.??????? (??
9.?????? ??? ?? [0] => 名前=タンク?? [1] => 性別=1?? ?? ???? )??
13.???? ?? ????? [0] => タンク?? [1] => 16 .?? )??
18.???? ??????? [0] =>??
??? ?? )??
preg_match_all("/(w+=w+)(#w+)?/i" Index.php ?name=tank&sex=1#top",$match);