Link to home
Start Free TrialLog in
Avatar of Zeke Rich
Zeke RichFlag for United States of America

asked on

ftp md5 Hash directory files.

Hello, i am reading the files of a remote server directory and i am able to get results as can be seen from var_dump(). However i am having some trouble to create a md5_file() from the array given. Thank you for your assistance in this matter!
<?
		// Open a session to an external ftp site
		$ftp_server = 'ftp.mywebsite.com';
		$ftp_user_name = 'user@mywebsite.com';
		$ftp_user_pass = 'mypass';
		$ftp_port = '21';
		$remote_dir1 = 'public_html/dir1';
		// set up basic connection
		$conn1 = ftp_connect($ftp_server)or die("Could not connect to {$ftp_server}\n");
		$login_result1 = ftp_login($conn1, $ftp_user_name, $ftp_user_pass)or die("Could not login with {$ftp_server}\n");
		$dir1 = ftp_nlist($conn1, $remote_dir1)or die("Could not login with {$remote_dir1}\n");
		// output $contents
		var_dump($dir1);
		
		
		if(ftp_pwd($conn1)) {
		 foreach($dir1 as $file1) {
            //loop through it
                $hash = md5_file($conn1.$remote_dir1."/".$file1);
				$d[$hash] = $file1;
				}
			}
	
		else { 
			echo "Failed - Is not readable";
			}
?>

Open in new window

Avatar of profya
profya
Flag of Sudan image

Try this:
$hash = md5_file($remote_dir1."/".$file1);

Open in new window

You may need to check if $file1 is a file or directory, you can use ftp_size function, if it returned -1 then it is a directory.

if (ftp_size($conn1, $file)!==-1)
     $hash = md5_file($remote_dir1."/".$file1);

Open in new window

Avatar of Zeke Rich

ASKER

@profya

Thank you for your response, i tried the code as you mention, but still there is no md5 results.

this is only results i am getting:

array(10) { [0]=>  string(1) "." [1]=>  string(2) ".." [2]=>  string(14) "1207910176.jpg" [3]=>  string(14) "1207942539.jpg" [4]=>  string(14) "1207943063.jpg" [5]=>  string(14) "1207944104.jpg" [6]=>  string(8) "logo.png" [7]=>  string(10) "screen.jpg" [8]=>  string(13) "sss-games.jpg" [9]=>  string(29) "title-summer-slots-series.jpg" }


                if(ftp_pwd($conn1)) {
                foreach($dir1 as $file1) {
				//loop through it
                if (ftp_size($conn1, $file)!==-1){
				//if its not a directory and the file exists
				$hash = md5_file($remote_dir1."/".$file1);
                $d[$hash] = $file1;
												 }
										}
								
}

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Zeke Rich
Zeke Rich
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial