ここから本文です

phpで自分のファイルの上の階層のURLを求める方法を教えて下さい。

アバター

ID非公開さん

2019/3/1515:47:26

phpで自分のファイルの上の階層のURLを求める方法を教えて下さい。

下記の中で
https://www.サンプル.co.jp/aaa/bbb/index.php

↓この内容を取得したいです。
https://www.サンプル.co.jp/aaa/bbb/

https://www.サンプル.co.jp/aaa/bbb/index.php で呼び出されても

https://www.サンプル.co.jp/aaa/bbb/ で呼び出されても

https://www.サンプル.co.jp/aaa/bbb で呼び出されても

https://www.サンプル.co.jp/aaa/bbb/』という答えが返ればOKです。

閲覧数:
21
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

shi********さん

2019/3/1518:28:49

$_SERVERの配列にどのくらいの内容が取得できているか確認してください。一般的なサーバだと

$pos = strpos($_SERVER['REQUEST_URI'], $_SERVER['SCRIPT_NAME']);
$path = ($pos !== false) ? substr($_SERVER['REQUEST_URI'], 0, $pos) : $_SERVER['REQUEST_URI'];
$url = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['SERVER_NAME'] . $path;
if (substr($url, strlen($url)-1) !== '/') { $url .= '/'; }

あたりでいいのかな?とは思います(ざっと書いてみただけなので間違ってたらごめんなさい)。


ただしWordpressみたいに存在しないファイルへのアクセスをindex.phpに投げるような .htaccess を書いていると最後の「ファイル」部分がファイルなのかディレクトリなのか判別が面倒になるかもしれません(URLでなくサーバパスならマシなんですが)。




(蛇足)
「URLを取得」という目的がちょっとわかりません。補足していただけると有難いです。

htmlに埋め込むjなら相対パスか絶対path(DocumentRootからのpath)で事足りるでしょうし、スクリプト側でファイルを扱うためのサーバパスなら __DIR__ でいいだろうし・・・

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる