当我使用 mkdir() 创建目录时使用 VPS 服务器 returns true 但是当我使用 cpanel 检查时文件夹是空白的,
Using VPS server when I create directory using mkdir() it returns true but folder when I check using cpanel is blank,
当我使用 mkdir() 创建目录时使用 VPS 服务器它 returns 是的但是当我使用 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);
因为我也用其他文件夹名称进行了测试,所以它 returns 在 html 中如下:
正在创建文件
数组 ([0] => 1213121 [1] => 12131 [2] => 1213 [3] => .. [4] => . )
我还使用 0755、0700 权限进行了测试,但 none 正常。
如果您的服务器文件夹权限没有问题,那么此代码适合您。
这是用于从您的服务器中删除“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);
注意:在替换第二个脚本之前,您必须删除第一个脚本。
问题实际上已解决,创建文件夹的文件在子域中,当我输入确切路径时,它没有指向它,而是在子域中创建了新的 public_html 文件夹,我是在 main public_html.. 它创建了一个像这样的路径:-public_html/subdomainfolder/public_html/members/1213121 相反,我认为路径将被创建为 public_html/members/1213121 ...所以我的问题现在解决了,Mahfuz 的答案是也对。感谢您的帮助。
当我使用 mkdir() 创建目录时使用 VPS 服务器它 returns 是的但是当我使用 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);
因为我也用其他文件夹名称进行了测试,所以它 returns 在 html 中如下: 正在创建文件 数组 ([0] => 1213121 [1] => 12131 [2] => 1213 [3] => .. [4] => . )
我还使用 0755、0700 权限进行了测试,但 none 正常。
如果您的服务器文件夹权限没有问题,那么此代码适合您。 这是用于从您的服务器中删除“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);
注意:在替换第二个脚本之前,您必须删除第一个脚本。
问题实际上已解决,创建文件夹的文件在子域中,当我输入确切路径时,它没有指向它,而是在子域中创建了新的 public_html 文件夹,我是在 main public_html.. 它创建了一个像这样的路径:-public_html/subdomainfolder/public_html/members/1213121 相反,我认为路径将被创建为 public_html/members/1213121 ...所以我的问题现在解决了,Mahfuz 的答案是也对。感谢您的帮助。