Jump to content

Archived

This topic is now archived and is closed to further replies.

Moon-Man.net

PHP file renaming script

Recommended Posts

Hey forum,
Could someone please give me a hand to write a script that will go through any given folder in a linux system, and remove BAD charactures? We have some macs that need to move files accross to a Samba inviroment, and it forbidds these cahractures. "\/ : * ? " < > |" but there are about 10,000 files that need to be renamed! Im not gonna do all them  :o
The only issue is that it needs to be a reocursive script. And that part im lost on :S
Could someone please help?
Cheers,
Nathan

Share this post


Link to post
Share on other sites
[code]<?php
$dir = '/path/to/old/dir';
$handle = opendir($dir);

while(($file = readdir($handle)) !== false)
{
    if (preg_match('/' . preg_quote('\/ : * ? " < > |', '/') . '/', $file))
    {
        $path = $dir . DIRECTORY_SEPARATOR . $file;
        if (!in_array($file, array('..', '.')) && is_file($path))
        {
            $contents = file_get_contents($path);
            $newPath = $dir . DIRECTORY_SEPARATOR . preg_replace('/' . preg_quote('\/ : * ? " < > |', '/') . '/', '_', $file);
            if (file_put_contents($newPath, $contents) !== false)
            {
                $unlink($path); //delete old file only if able to create new
            }
        }
    }
}
?>[/code]

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.