[PHP-users 24563] Re: 現在のパスから上位ディレクトリパスを取得

SHIRAFU Makoto escvel @ terra.dti.ne.jp
2005年 2月 16日 (水) 19:44:30 JST


こんにちは、しらふです。

Wed, 16 Feb 2005 18:06:13 +0900に
halt <halt.hde @ gmail.com> さんから頂いた、
"Re: [PHP-users 24553] R e: 現在の パス から上 位ディレクト リパスを取得"へのお返事です。

> print ( dirname('/home/user/public_html/abc/') . '/');

> > お手軽にできる関数がたくさん用意されてるのが
> > PHPの利点です。車輪の再開発はやめましょう。
haltさんの手法だと、与えられた文字列がディレクトリパスの場合、
上位のディレクトリを求めることは出来ますが、与えられた文字列が
ファイル名を含むフルパスの場合、上位のディレクトリは求められな
いのではないでしょうか?

たとえば、
 ■テストケース1(ディレクトリパス)
  【処理対象】
  /home/user/public_html/abc/

  【処理結果】
  /home/user/public_html/


 ■テストケース2(フルパス)
  【処理対象】
  /home/user/public_html/abc/a.txt

  【処理結果】
  /home/user/public_html/abc/

 テストケース2だと、上位ディレクトリではなく、カレントディレク
トリが返ってきていませんか?

 PHPのマニュアルを見ると、
|  dirname
|  (PHP 3, PHP 4 , PHP 5)
|
|  dirname -- パス中のディレクトリ名の部分を返す
とあって、挙動は合っているように思います。
 となると、寺澤さんの「現在のパスから」という要求仕様と微妙に
異なるような気がします。
 もっとも、寺澤さんの要求仕様が「ディレクトリパス」だけでした
ら、合致していると思いますが…(^^;


  ==== * ==== * ==== * ==== * ==== * ==== * ==== * ====

 これがウワサのGmailですか…。
 MLで見ると、噂通りに妙なエンコードをしていますね。
(特にサブジェクトなどは見た目でわかっちゃいますね)
 他のMLで見たのですが、ちょっと古いメーラだと異常終了させてし
まうことがあるとか。。。
 かつての半角カナのようにMLが受け入れるか否かのポリシー/マナー
が必要になっているように思います。 > 管理人の方

 ■参考資料
 下記のURL(メッセージ番号7971から始まるスレッド)が、その議論で
す。
 (認証が要求されますが、ダイアログに説明があります。)
 http://memo.st.ryukoku.ac.jp/archive/200412.month/thread.html


+--------------------------------------------------------------------+
| From         : SHIRAFU Makoto                                      |
| E-mail       : escvel @ terra.dti.ne.jp                              |
| Web Site     : http://www.terra.dti.ne.jp/~escvel/                 |
| Fingerprint  : D336 5CE0 6D5E 106A 47BF 5FB7 739B B0FE 240B EEB7   |
+--------------------------------------------------------------------+



PHP-users メーリングリストの案内