#!/usr/bin/php ...', $prog); println('Optional arguments:'); println(' -d turn debug output on.'); println('Mandatory arguments:'); println(' file ... one or more file names.'); exit(1); } /* * We typically need lots of RAM to parse TIFF images since they tend * to be big and uncompressed. */ ini_set('memory_limit', '32M'); foreach ($argv as $file) { println('Reading file "%s".', $file); $data = new PelDataWindow(file_get_contents($file)); if (PelJpeg::isValid($data)) { $jpeg = new PelJpeg(); $jpeg->load($data); $app1 = $jpeg->getExif(); if ($app1 == null) { println('Skipping %s because no APP1 section was found.', $file); continue; } $tiff = $app1->getTiff(); } elseif (PelTiff::isValid($data)) { $tiff = new PelTiff($data); } else { println('Unrecognized image format! Skipping.'); continue; } $ifd0 = $tiff->getIfd(); $entry = $ifd0->getEntry(PelTag::DATE_TIME); if ($entry == null) { println('Skipping %s because no DATE_TIME tag was found.', $file); continue; } $time = $entry->getValue(); $new = gmdate('../Y-m/', $time) . $file; if (file_exists($new)) { die('Aborting, ' . $new . ' exists!'); } println('mv %s %s', $file, $new); rename($file, $new); }