Solved

ftp md5 Hash directory files.

Posted on 2009-07-09
4
859 Views
Last Modified: 2012-05-07
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

0
Comment
Question by:zefex
  • 2
  • 2
4 Comments
 
LVL 14

Expert Comment

by:profya
ID: 24817963
Try this:
$hash = md5_file($remote_dir1."/".$file1);

Open in new window

0
 
LVL 14

Expert Comment

by:profya
ID: 24818045
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

0
 

Author Comment

by:zefex
ID: 24820447
@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

0
 

Accepted Solution

by:
zefex earned 0 total points
ID: 24833117
MD5 was not working well with FTP so i  read the files then storeded the file names to a cache file for comparison. Worked like a charm!

  // Retrieve File List
  $files = ftp_nlist($conn, $remote_dir);

  $currentFiles = array();
  if(file_exists($cache_file))
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Popularity Can Be Measured Sometimes we deal with questions of popularity, and we need a way to collect opinions from our clients.  This article shows a simple teaching example of how we might elect a favorite color by letting our clients vote for …
This article discusses how to create an extensible mechanism for linked drop downs.
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

757 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now