trekerboy Posted September 2, 2007 Share Posted September 2, 2007 Hello, I am trying to create a function that creates a directory tree given a path. The function needs to determine the parent directory that currently exists (such as /public_html/images/) in the given path and then create the subdirectories below it (such as /public_html/images/bears/beats/battle_star_galactica/). function ftp_newdir($dir) { require ''.$_SERVER['DOCUMENT_ROOT'].'/includes/config.php'; $dirs_desc = array(); $this_dir = $dir; $preamble = "/home/danstewa"; if(!$conn_id = ftp_connect($ftp_server)) { $errors[] = "Could not connect to ".$ftp_server; } if(!$login_result = ftp_login($conn_id, $ftp_user, $ftp_password)) { $errors[] = "Could not connection to ".$ftp_server." with the supplied user name and password."; } while(!file_exists($preamble.$this_dir)) { $dirs_desc[] = $this_dir; $this_dir = dirname($this_dir); } $dirs_asc = array_reverse($dirs_desc); ftp_site($conn_id, 'CHMOD 0777 '.dirname($dirs_asc[0])); for($i = 0; $dirs_asc; $i++) { mkdir($dirs_asc[$i]); ftp_site($conn_id, 'CHMOD 0777 '.$dirs_asc[$i]); } } The trouble is with the following snippet of code: while(!file_exists($preamble.$this_dir)) { $dirs_desc[] = $this_dir; $this_dir = dirname($this_dir); } My goal with this snippet was to populate an array with a list of sub-dirs that needed to be created, but apparently it's an infinite loop. NOTE: I'm on a shared server, so I can't use mkdir since it would require that I use chmod to change perms before directory creation; chmod isn't permitted on the shared server that I am on. That's why I'm using FTP chmod'ing. Any help is appreciated! - Jason Quote Link to comment https://forums.phpfreaks.com/topic/67622-solved-create-directory-tree/ Share on other sites More sharing options...
trekerboy Posted September 2, 2007 Author Share Posted September 2, 2007 Bump... anyone? Quote Link to comment https://forums.phpfreaks.com/topic/67622-solved-create-directory-tree/#findComment-339822 Share on other sites More sharing options...
trekerboy Posted September 2, 2007 Author Share Posted September 2, 2007 SOLVED. Used the following code to create directory tree using php ftp functions because chmod function was restricted: function ftp_newdir($dir) { require ''.$_SERVER['DOCUMENT_ROOT'].'/includes/config.php'; $dir_not_found = TRUE; $dirs_desc = array(); $this_dir = $dir; $preamble = "/home/danstewa"; if(!$conn_id = ftp_connect($ftp_server)) { $errors[] = "Could not connect to ".$ftp_server; } if(!$login_result = ftp_login($conn_id, $ftp_user, $ftp_password)) { $errors[] = "Could not connection to ".$ftp_server." with the supplied user name and password."; } while($dir_not_found) { if(!file_exists($preamble.$this_dir)) { $dirs_desc[] = $this_dir; $this_dir = dirname($this_dir); } else { $dirs_desc[] = $this_dir; $dir_not_found = FALSE; } } $dirs_asc = array_reverse($dirs_desc); for($i = 0; count($dirs_asc) > $i; $i++) { if(!file_exists($preamble.$dirs_asc[$i])) { ftp_mkdir($conn_id, $dirs_asc[$i]); ftp_site($conn_id, 'CHMOD 0777 '.$dirs_asc[$i]); } } for($i = 0; count($dirs_asc) > $i; $i++) { if(file_exists($preamble.$dirs_asc[$i])) { ftp_site($conn_id, 'CHMOD 0755 '.$dirs_asc[$i]); } } } Quote Link to comment https://forums.phpfreaks.com/topic/67622-solved-create-directory-tree/#findComment-339868 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.