Auto Increment with MongoDB
Фотосортер
Поставил сначала Пикасу. Потом подумал и написал скрипт (вы не поверите — на php), который сортирует все фотографии по директориям, вида год/название камеры/месяц.
Отсортировал все за десять лет.
Оказалось очень удобно, особенно название камеры, сразу видны профессиональные фотосессии и хипстерские фотки с айфона.
Ну и что-то лучше, чем сортировки по годам сложно представить.
Заодно думаю о покупке Canon PowerShot S100, потому что PowerShot G5 уже старенький (и он за эти годы не уменьшился).
$Directory = new RecursiveDirectoryIterator($from); foreach ($Iterator as $key => $value) $exif = @exif_read_data($key); $dest = "";
if (!$exif[FileDateTime]) if ($exif[Model]) $dest.="/".$path[basename]; echo $c.".".$key." -> ".$dest." $newpath = pathinfo ($dest); $newpath = pathinfo ($copydest); }
/*
$from = "D:\acerbial_media";
$to = "P:";
$copy = "D:\photos";
*/
$Iterator = new RecursiveIteratorIterator($Directory);
{
$path = pathinfo ($key);
if ($exif[Model]=="iPhone 4") $exif[Model]="iPhone";
$dest.="/misc/".$path[extension];
else
$dest.="/".date ("Y",$exif[FileDateTime]);
{
$dest.= "/{$exif[Model]}";
$dest.="/".date ("m.F",$exif[FileDateTime]);
}
$dest = str_replace ('//','/',$dest);
$copydest = $copy.$dest;
$dest = $to.$dest;
";
$c++;
@mkdir ($newpath[dirname],0777,true);
copy ($key,$dest);
@mkdir ($newpath[dirname],0777,true);
rename ($key,$copydest);
Php maed me sad
Сайт про то, какое php гавно неконсистентное.
Помимо того, что перечислено (хотя я не со всем сталкивался), меня в последнее время раздражает, что при нестрогом типировании (это так по-русски называется?), которое, наверное, благо, пустая или несуществующая переменная не считается пустым массивом.
Т.е. foreach ($a as $key => $value)
будет ругаться на то, что $a не массив, если $a — не массив (смешно, я знаю).
В моем понимании, $a="";
должно быть «равно» $a=array();
Аргументация?
И в первом и во втором случае можно сделать $a[]="new"
, и оно будет работать.
Ну и вообще можно по foreach и строку перебирать, если эта строка, почему бы и нет, раз остальное позволять работать со строкой как с «псевдомассивом».
Еще на стыке нестрогого типирования в php и mongodb иногда случаются смешные вещи, типа переменных «145», которые вдруг оказываются строкой, но это не проблема языка.
ЧПУ sucks balls
ЧеловекоПонятные Урлы — это фетиш.
Я буду отказываться от них везде, где можно. В урле, типа www.hobius.com/?user=smirnov я не вижу ничего плохого, например.
Особенно когда по адресу site.com/users/ нет ничего, а по адресу site.com/users/username уже есть.
Ну и заодно, по аналогии с «твиттерскими» адресами, типа twitter.com/#/something, придумал самый простой способ реализовать ЧПУ почти везде безо всяких mod_rewrite и прочего.
Надо вместо таких урлов:
spectator.ru/life/fiction/blue_meteorite
Делать вот такие:
spectator.ru/?/life/fiction/blue_meteorite
Тогда, например, в php мы все получаем в $_SERVER["QUERY_STRING"].