ホームページ  >  記事  >  バックエンド開発  >  URLを解析するための3つのPHP関数

URLを解析するための3つのPHP関数

WBOY
WBOYオリジナル
2016-06-13 13:09:32890ブラウズ

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.?>??

5. 結果は次のとおりです??

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 つの方法を使用すると、基本的に必要なものを取得できます。実際、正則化を使用する別の方法もあり、これによっても必要なデータを迅速に取得できます。

パラメータを渡す方法はたくさんありますが、主に 2 つの方法があり、1 つは name=tank&sex=1#top;、もう 1 つは name=tank&sex=1 です。



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] =>??

20.?????????

??? ?? )??

preg_match_all("/(w+=w+)(#w+)?/i" Index.php ?name=tank&sex=1#top",$match);
print_r($match);?>>
結果は次のようになります
Array
(
?? ? [0] => ; 配列
????????? (
????????? [0] => 名前=タンク
?????? ???? [1] => セックス = 1#top
??? [1] => 🎜>??????????[0] => 名前=タンク
?????????[1] => 性別=1
???? ? ?? )
??? [2] =>?????? (
????????? [0] => ??????????[1] => #top
?????? ちょっと生々しいです。上記の正規表現のルールは無効ではありません。ルールは URL に基づいて推測されます。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。