2012-05-12 32 views
3

多分、その後からエコーPHP取得し、現在のファイルのディレクトリ

だから、のような、それを分割していますファイルのフルパスを取得することが可能である場合、私は疑問に思って: エコー$ currentDir //出力EX:/ホーム/ユーザー/ public_htmlの/のscrips /コード/テスト出力があるので

はそれを3ディレクトリの下を分割/ヘクタール:/ホーム/ユーザー/ public_htmlの/スクリプト

これは可能ですか?

+3

はい、可能です – Mischa

+0

あなたはダウンの代わりに3つのディレクトリ**アップ**を言うべきです。 – alex

答えて

5

ファイルが現在実行中のディレクトリを__DIR__またはdirname(__FILE__)の< PHP 5.3にすることができます。

パスを取得し、文字列操作でいくつかのレベルに上がることができます。あるいは

$path = implode(
    DIRECTORY_SEPARATOR, 
    array_slice(explode(DIRECTORY_SEPARATOR, $path),0,-3) 
); 

パスは(同じ場所に意志点が)realpath()を介して別の文字列に変換することができるが、この作業...

$path = realpath(
    rtrim($path, DIRECTORY_SEPARATOR) . str_repeat('..' . DIRECTORY_SEPARATOR, 3) 
); 

をすべきです。私は何

+0

申し訳ありませんアレックス、あなたのスペーシングは不安でした。 –

+0

@JaredFarrishそれを修正していただきありがとうございます。私はバッテリーを使い切っているティッシュボックスにノートパソコンでこれを入力しています。 – alex

+0

問題はありません、私はこの答えが強迫の下にあったと考えました... –

0

は次のとおりです。

  1. は、ファイルの種類のクラスを作成します。
  2. 私のプロジェクトのメインフォルダのいくつかの定数を定義して、私の人生を楽にします。
  3. そのクラスの内部でメソッドを作成してパスを取得します。
  4. 関数の結果をプロパティに代入すると、私の人生が楽になります。もちろん

    class Image { 
        private $temp_path; 
        protected $upload_dir = 'imagens'; 
    
        public function directory() { 
         return $this->upload_dir . DIRECTORY_SEPARATOR . $this->filename; 
        } 
    } 
    
    // If you want only the extension: 
    
    private function _ext() { 
        return strrchr($this->filename, "."); 
    } 
    

    がクラス、はるかにはるかにですが、アップロードしたファイルのパスを取得するために必要なもの厥:このよう

。あなたがしなければならないことは、オブジェクト指向のPhPを使用してファイルアップロードページのプロパティを直接設定してクラスに渡すだけなので、ファイルとそのプロパティのより良い記録と制御のためにDBに保存することもできます。

すべてのことについてさらに情報が必要な場合は、尋ねてください。

あなたに最高の運があります。

関連する問題