当我使用mkdir()创建目录时,使用VPS服务器返回true,但是当我使用cpanel检查时文件夹为空白,

时间:2018-11-15 19:16:02

标签: php mkdir scandir

当我使用mkdir()创建目录时使用VPS服务器,它返回true,但是当我使用cpanel检查时文件夹为空,我不知道为什么我甚至使用scandir(),并且我注意到创建的那些文件夹显示在数组在scandir()中,为什么会发生,为什么这些文件夹没有显示? 这是我的代码:

/ 创建目录 /

                if (!file_exists('public_html/members/1213121')) {
                    mkdir('public_html/members/1213121', 0777, true);
                    echo "file getting created";
                }
                else{
                    echo "file not getting created.";
                }

                /**this is the code I put to scan the members folder and it retuns array and showing the folder named 1213121 but in actual cpanel that directory is not there **/

                $dir = "public_html/members/";

                // Sort in ascending order - this is default
                $a = scandir($dir);

                // Sort in descending order
                $b = scandir($dir,1);

                print_r($b);

因为我也使用其他文件夹名称进行了测试,所以它以html形式返回,如下所示: 文件创建 数组([0] => 1213121 [1] => 12131 [2] => 1213 [3] => .. [4] =>。)

我也以0755、0700的权限进行了测试,但没有一个工作。

2 个答案:

答案 0 :(得分:2)

如果您的服务器文件夹权限确定,那么此代码对您有效。 第一个脚本,用于从服务器中删除“ 1213121”文件夹。 脚本1:     

delete_files('/public_html/members/1213121/');

/* 
 * php delete function that deals with directories recursively
 */
function delete_files($target) {
    if(is_dir($target)){
        $files = glob( $target . '*', GLOB_MARK ); //GLOB_MARK adds a slash to directories returned

        foreach( $files as $file ){
            delete_files( $file );      
        }

        rmdir( $target );
    } elseif(is_file($target)) {
        unlink( $target );  
    }
}
?>

用以下脚本替换您的脚本2:     

$dir = 'public_html/members/1213121';

if (!file_exists($dir) && !is_dir($dir)) { //check dir is not exist

    if (mkdir($dir, 0777, true)) { //check folder is created
        echo "Folder created"; //display success message
    } else {
        echo "folder not created."; //if the dir is not created then show error message
    }
}

/**this is the code I put to scan the members folder and it retuns array and showing the folder named 1213121 but in actual cpanel that directory is not there **/

$dir = "public_html/members/";

// Sort in ascending order - this is default
$a = scandir($dir);

// Sort in descending order
$b = scandir($dir, 1);

print_r($b);

注意:替换第二个脚本之前,必须删除第一个脚本。

答案 1 :(得分:0)

问题已解决,实际上正在创建文件夹的文件位于子域中,当我输入确切路径时,它没有指向它,而是在子域中创建了新的public_html文件夹,而我位于主public_html中。创建了一个像这样的路径:-public_html / subdomainfolder / public_html / members / 1213121,相反,我以为该路径将被创建为public_html / members / 1213121 ...所以我的问题现在已经解决,Mahfuz的回答也正确。谢谢你的帮助。