Skip to content

Instantly share code, notes, and snippets.

@branquito
Created October 11, 2013 18:01
Show Gist options
  • Save branquito/6939293 to your computer and use it in GitHub Desktop.
Save branquito/6939293 to your computer and use it in GitHub Desktop.
renamer-for-eglo
<!-- QUERY for deleting leftover copies of images on server. -->
<!-- -->
<!-- mysql> select o.id_product, o.id_image from ps_image_old as o left join ps_image_processed as p -->
<!-- &#45;> on o.id_product = p.id_product -->
<!-- &#45;> where o.id_image <> p.id_image; -->
<?php
// set params here
$username = "user";
$password = "pass";
$hostname = "hostname";
$db_name = "database_name";
$proc_folder = "proc";
// connect to DB
$dbhandle = mysql_connect($hostname, $username, $password) or die("Unable to connect to MySQL");
$selected = mysql_select_db($db_name ,$dbhandle) or die("Could not select eglo_small");
/**
* Script to bulk rename bunch of photos for EGLO site.
* branchito de munze
*/
if ($handle = opendir($proc_folder)) {
while (false !== ($filename = readdir($handle))) {
if ($filename != "." && $filename != "..") {
$m = is_match($filename);
if ($m) {
echo "<hr />";
// now we have $m['refnum'] and $m['remain']
// refnum is reference number of img file, remain is what is left without extension
echo '<pre>'; echo "REFNUM: "; print_r($m['refnum']); echo '</pre>';
echo '<pre>'; echo "REMAIN: "; print_r($m['remain']); echo '</pre>';
$pid = queryDb($m['refnum']);
if($pid){
echo '<pre>'; echo "PID: ".$pid; echo '</pre>';
// Build filename like $pid-$m['refnum']$m['remain'].jpg
// echo '<pre>'; echo $pid."-".$m['refnum'].$m['remain'].".jpg"; echo '</pre>';
$new_filename = $pid."-".$m['refnum'].$m['remain'].".jpg";
// update ps_image table to reflect file rename change
$up_query = "UPDATE ps_image SET id_image=".$m['refnum']." WHERE id_product=".$pid;
$r = mysql_query($up_query);
if(!$r){
die('Invalid Query: '.mysql_error());
}
echo '<pre>'; var_dump($filename); echo '</pre>';
echo '<pre>'; var_dump($new_filename); echo '</pre>';
rename($proc_folder.'/'.$filename, $proc_folder.'/'.$new_filename);
}
}
}
$m = null;
}
closedir($handle);
mysql_close($dbhandle);
}
function is_match($fn)
{
// 23691-thickbox.jpg
if (preg_match("/^(?P<refnum>\d{1,5})(?P<remain>-?\w*)\.jpg$/", $fn, $matches)) {
return $matches;
} else {
return false;
}
}
function queryDb($refnum)
{
# code...
$query = mysql_query("SELECT id_product, reference FROM ps_product WHERE reference=$refnum");
$row = mysql_fetch_array($query);
if(!$row){
return false;
} else {
$pid = $row['id_product'];
return $pid;
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment