使用PHP的opendir()时,目录路径的正确格式是什么?

时间:2012-11-04 01:46:29

标签: php filepath opendir

使用opendir()时,我的文件路径出现问题。我收到以下警告:

  

PHP警告:opendir(/ uploads / users / 405 / images / profile / profilepic /)   [function.opendir]:无法打开目录:   在......中没有该文件或目录   第1059行/home/my_folder/public_html/models/photos.php

photos.php 中的

行1059具有以下内容:

if ( ( $handle = opendir( $profile_pic_path ) ) ) { // do stuff }

其中:

$profile_pic_path = '/uploads/users/405/images/profile/profilepic/';

我尝试了几种不同的东西,但我无法让它工作(我在错误日志中不断收到PHP警告消息)。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

路径开头的

/意味着 - 绝对路径。

你应该使用绝对或相对路径:

$profile_pic_path = dirname(__FILE__).'/uploads/users/405/images/profile/profilepic/';

$profile_pic_path = 'uploads/users/405/images/profile/profilepic/';

如果您的脚本位于上传目录的同一目录中,则此方法有效。

如果您的脚本在子目录中(例如lib / tests / test.php),并且您没有初始化全局$ basepath:

$profile_pic_path = dirname(dirname(dirname(__FILE__)))
                    .'/uploads/users/405/images/profile/profilepic/';

通常在逻辑顶部的某处使用全局或常量基础(例如在config / main.php中):

global $basedir=dirname(dirname((__FILE__));