TalkPHP

TalkPHP (http://www.talkphp.com/forums.php)
-   Absolute Beginners (http://www.talkphp.com/absolute-beginners/)
-   -   renaming files (http://www.talkphp.com/absolute-beginners/1314-renaming-files.html)

Tanax 10-18-2007 09:52 AM

renaming files
 
Hi, I got an image gallery script, that requires that the images are called 0, 1, 2, 3, etc...

And I was thinking, if the photograph brings me 300 pics, it'll be REALLY boring to rename them all manually.. so I was wondering if it's possible to rename them with a script.

Something like:

PHP Code:


if ($handle opendir($path)) {
    
        
$totalPics 0;
        while (
false !== ($file readdir($handle))) {
        
            if (
$file != "." && $file != "..") {      
                do 
something here      
            
}            
        }       
        
closedir($handle);


Something like that to loop through the folder, and if I already have 0, 1, 2, 3, and the next file is called IMG214, it gets renamed to 4, and thjen 5, 6, 7, etc.. you get the point..

Would this be a good way of achieving that? And if so, how would I do it?

Salathe 10-18-2007 10:05 AM

For the actual renaming of the files, there is a really handy function: rename() (PHP manual page)

It might be good if you also use the glob() function to retrieve the list of files that need to be renamed. Wildhoney wrote an overview on this function in Traverse Directories the Easy Way with Glob() !

Tanax 10-18-2007 10:25 AM

So something like this then?

PHP Code:

$images glob($path.'*.jpg'GLOB_BRACE GLOB_NOSORT);
$i 0;

foreach(
$images as $image) {

        if(
$image != $i) {
              
$rename rename($path.$image$path.$i.$format)
              if(
$rename) {
                     echo 
'File: ' .$image' was renamed to ' .$i.$format;
              }
              else {
                     echo 
'File: ' .$image' could not be renamed to ' .$i.$format', please check your chmodding!';
              }
        }
        else {
               echo 
'File: ' .$image' was skipped because it has already the required name!';
        }

        
$i++;



Yes?


All times are GMT. The time now is 01:24 AM.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0