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 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? 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]); } } } Link to comment https://forums.phpfreaks.com/topic/67622-solved-create-directory-tree/#findComment-339868 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.