エコー元のファイルへのフルパスを取得してから分割することが可能かどうか疑問に思っています
例: echo $currentDir //output EX: /home/user/public_html/scrips/code/test/ha
次に、それを 3 つのディレクトリに分割して、出力が次のようになるようにします: /home/user/public_html/scripts
これは可能ですか?
ファイルが現在実行されているディレクトリを取得するには、 PHP 5.3__DIR__
またはdirname(__FILE__)
< PHP 5.3 を使用します。
パスをたどって、文字列操作でいくつかのレベルを上げることができます。
$path = implode(
DIRECTORY_SEPARATOR,
array_slice(explode(DIRECTORY_SEPARATOR, $path),0,-3)
);
あるいは、これはうまくいくはずです...
$path = realpath(
rtrim($path, DIRECTORY_SEPARATOR) . str_repeat('..' . DIRECTORY_SEPARATOR, 3)
);
パスは経由で別の文字列に変換される場合がありますがrealpath()
(同じ場所を指しますが)。
私がしていることは:
そのような:
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に保存することもできます。
全体についてさらに情報が必要な場合は、質問してください。
幸運を祈ります。