「http://xxxx.co.lp/together/14/19」ページで、URLパスの第2階層まで取得したい
閲覧数:4954
投稿日:2019-11-19
更新日:2019-11-19
< 最初に試したこと >
文字列操作
・「/」が現れる2番目までの位置を取得しようとした
→ 「最初の位置」は「strpos」を使用することで簡単に取得できるが、「2番目の位置」取得は予想以上に面倒なことが判明
・「/」が最初に現れる位置を最後から検索しようとした
→ 「strrpos」を探すも、そんな関数は存在しない
→ 「strpos」のoffsetパラメータで、 負の数を指定すると、文字列の末尾からこの数だけ戻った場所から検索を開始する
→ URL構成に左右されるため、汎用性は低い
< 採用案 >
・1.$_SERVER["REQUEST_URI"]で現在ページのURLパスを取得。(/together/14/19)
・2.explodeでスラッシュ区切りにし、配列$urlAryへ格納
Array(
[0] =>
[1] => together
[2] => 14
[3] => 19
)
・3.連結
コード
$urlAry = explode('/',$_SERVER["REQUEST_URI"]); $result = '/'.$urlAry['1'].'/'.$urlAry['2']; //url第2階層まで echo $result;
結果
/together/14