【问题标题】:PHP Get current files directoryPHP 获取当前文件目录
【发布时间】:2012-05-12 02:54:19
【问题描述】:

我想知道是否有可能获得它所回显的文件的完整路径,然后可能会拆分它

比如: 回声 $currentDir //输出EX:/home/user/public_html/scrips/code/test/ha

然后将其拆分为 3 个目录,因此输出为:/home/user/public_html/scripts

这可能吗?

【问题讨论】:

  • 你应该说三个目录up而不是down。

标签: php directory split


【解决方案1】:

您可以在 __DIR__ 或 dirname(__FILE__) 获取文件当前正在执行的目录。

您可以通过字符串操作走一条路径并提升几级。

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

或者,这应该工作......

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

虽然路径可能会通过realpath() 转换为不同的字符串(尽管它指向相同的位置)。

【讨论】:

  • 对不起,亚历克斯,你的间距不正常。
  • @JaredFarrish 感谢您修复它。我正在笔记本电脑上的纸巾盒上打字,电池快没电了。
  • 你先生是人,它工作得非常好,非常感谢你的快速和完美的回答!
  • 还有一个问题,我怎样才能将最终结果拆分为仅输出:脚本?谢谢
  • @MicMac 检查在目录分隔符上分解它的结果。这应该是显而易见的。
【解决方案2】:

我要做的是:

  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 直接在文件上传页面中设置属性以将它们传递给类,因此它甚至可以存储在您的数据库中,以便更好地记录和控制您的文件及其属性。

如果您需要有关整个事情的更多信息,请询问。

祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-23
    • 2013-01-29
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 2013-09-03
    相关资源
    最近更新 更多