ต้องการจะเก็บภาพโดยเก็บตามวันที่ ที่โดนถ่าย เหมือนใน Camera Roll เพราะว่าภาพ TIFF, JPEG, WAV จะมีข้อมูล meta data ที่เรียกว่า Exchangeable image file format (Exif) ที่จะใส่ข้อมูลที่ถูกบันทึกไว้ตอนที่ถ่ายไว้โดยใช้กล้องดิจิติล มีข้อมูลสำคัญๆ อย่าง ถ่ายกับกล้องอะไร Manufacturer, Model เวลาที่ภาพถูกถ่าย Date and Time (original) มีการแต่งภาพรึเปล่า เมื่อไหร่ Date and Time (digitized) และถ่ายที่ไหน
ใน php เราสามารถใช้ function exif_read_data ดึงข้อมูลออกมาให้ใช้จัดการกับรูปได้ จะย้ายภาพไปเก็บไว้ตามวันที่ที่ถ่าย หรือตามสถานที่
<?php /* fix maximum execution time */ set_time_limit(0); /* find file */ $root = 'Photos'; echo'<dl>'; foreach (glob($root."/*.{jpeg,JPEG,jpg,JPG}", GLOB_BRACE) as $filename) { if($exif = exif_read_data($filename, 'IFD0')) { $date = date('Y-m-d', strtotime($exif['DateTimeOriginal'])); /* create folder */ $dir = $root.'/'.$date; if (!is_dir($dir)) { mkdir($dir, 0644, true); } /* move file */ $path = explode('/', $filename); $newFile = $dir.'/'.$path[1]; rename($filename, $newFile); echo '<dt>',$filename,'</dt>', '<dd>',$newFile,'</dd>'; } } echo'</dl>', '<h1>Compleate!</h1>';
About the author