タイトルにあるように、データベースに保存されている画像名を md5 に変更したいが、画像の拡張子はそのままにしておきたいので、以下のコードを試してみましたが、失敗しました (おそらく、やってます) ...どうすれば目標を達成できるかについてのアイデアはありますか?
function get_file_extension($file_name) {
return substr(strrchr($file_name,'.'),1);
}
$query = "SELECT img FROM post";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
$name = substr($row['img'], -4, 4);
$ext = get_file_extension($row['img']);
$notmd5 = $row['img'];
$md5img = md5($name).'.'.$ext;
$q = "UPDATE post SET img='$md5img' WHERE img='{$notmd5}'";
$r = mysql_query($q) or die(mysql_error());
}
................................................................... .........
アップデート
答え:
dir/folder と db 名のファイルの名前を同時に変更します。
function get_file_extension($file_name) {
return substr(strrchr($file_name,'.'),1);
}
//path to directory to scan
$directory = "thumbs/";
$directory2 = "md5/";
//get all image files with a .jpg extension.
$images = glob($directory . "*.*");
//print each file name
foreach($images as $image)
{
$imag = str_replace($directory, '', $image);
$ex = get_file_extension($imag);
$new = md5($imag).'.'.$ex;
rename($image, $directory2.$new);
$q = "UPDATE post SET img='$new' WHERE img='{$imag}'";
$r = mysql_query($q) or die(mysql_error());
}
私が最初に質問したとき、私はすでにディレクトリ/フォルダー内の画像の名前を変更していましたが、それらのバックアップを持っていたので、ジョブを混ぜ合わせて目標を達成しました:)