Web サイトに 5000 枚の画像のディレクトリがあります。ディレクトリ内のすべての画像の名前を完全にランダムな名前 (ri32rif293jf32f3f など) に変更するには、PHP で何ができますか?
数か月ごとにランダムに名前を変更できるように、これを知る必要があります。
それはかなり簡単です:
終わり。これらすべてを独自の関数にラップして、数か月ごとに簡単に呼び出すことができるようにします。
function random($numchars,$digits,$small,$capital,$splchr)
{
$dig = "0123456789";
$sml = "abcdefghijklmnopqrstuvwxyz";
$spl = "!@#$%*";
$cap = "ABCDEFGHJKLMNOPQRSTUVWXYZ";
if($digits == 1)
{
$str .= $dig;
}
if($small == 1)
{
$str .= $sml;
}
if($capital == 1)
{
$str .= $cap;
}
if($splchr == 1)
{
$str .= $spl;
}
for($j=0; $j < $numchars; $j++)
{
$randomized .= $str{ rand() % strlen($str) };
}
return $randomized;
}
$source = "/source direcotry/";
$destination = "/destination directory/";
function getDirectory( $source, $destination, $level=0)
{
$count =1;
$ignore = array( 'cgi-bin', '.', '..' );
if($handle = opendir($source))
{
//one by one reading a file
while(false !== ($file = readdir($handle)))
{
if( is_dir( "$source/$file" ) )
if (!file_exists($destination.$file))
mkdir("$destination$file", 0700);
if( !in_array( $file, $ignore ) )
{
if( is_dir( "$source/$file" ) )
{
getDirectory( "$source$file/", "$destination$file/", ($level+1));
}
else
{
$rand = random(16,1,1,1,1);
$srcfile = file_get_contents($source.$file);
$extfile=substr($file, strrpos($file, "."));
file_put_contents($destination.$rand.$extfile , $srcfile);
}
}
}
$total[$level] = $total + intval($count-1);
echo "<br/><b> $destination ---- ".intval($count-1)."</b><br/><br/>";
}
closedir($handle);
}
//calling getDirectory function for repeat the for all sub folders.
getDirectory( $source , $destination, 0);