はじめに
サイトのアクセス解析をするときに、urlを解析して、ドメインやクエリ文字列を使用したい場合がある。
そのときによく使うparse_urlという関数についてまとめてみた。
HOST
ドメインが取得できる
parse_url('http://domain1.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST')
⇒ domain1.com
PATH
ドメインより後ろのPathが取得できる
parse_url('http://domain1.com/path1/p.php?k1=v1&k2=v2#Ref1', 'PATH')
⇒ /path1/p.php
QUERY
クエリ文字列が取得できる
parse_url('http://domain1.com/path1/p.php?k1=v1&k2=v2#Ref1', 'QUERY')
⇒ k1=v1&k2=v2
keyを指定すればその文字列を取得することもできる
parse_url('http://domain1.com/path1/p.php?k1=v1&k2=v2#Ref1', 'QUERY', 'k1')
⇒ v1
TreasureDataであれば以下の関数を利用してデコードをすることもできる
td_url_decode(parse_url('http://domain1.com/path1/p.php?k1=%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a&k2=v2#Ref1', 'QUERY', 'k1'))
⇒ あいうえお
REF
ラベルが取得できる
parse_url('http://domain1.com/path1/p.php?k1=v1&k2=v2#Ref1', 'REF')
⇒ Ref1
PROTOCOL
プロトコルが取得できる
parse_url('http://domain1.com/path1/p.php?k1=v1&k2=v2#Ref1', 'PROTOCOL')
⇒ http
FILE
PATH + QUERYが取得できる
parse_url('http://domain1.com/path1/p.php?k1=v1&k2=v2#Ref1', 'FILE')
⇒ /path1/p.php?k1=v1&k2=v2