Created
March 16, 2015 17:01
-
-
Save bgadrian/9356ad66b620ac69a08f to your computer and use it in GitHub Desktop.
Store multiple images on server
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// snippet for blog post | |
// http://btools.eu/read/2013/how-to-store-multiple-images-or-documents-on-server/ | |
<?php | |
//we presume we have an unique ID for every picture | |
for ($id_pic = 1; $id_pic < 10000; $id_pic += 100) | |
{ | |
# echo PHP_EOL.getPadImgFolder($id_pic).'/'.$id_pic.'.jpg'; | |
# echo PHP_EOL.getOrdImgFolder($id_pic).'/'.$id_pic.'.jpg'; | |
# echo PHP_EOL.getSparseImgFolder($id_pic).'/'.$id_pic.'.jpg'; | |
# echo PHP_EOL.getSubPadImgFolder($id_pic).'/'.$id_pic.'.jpg'; | |
echo PHP_EOL.getDateImgFolder($id_pic).'/'.$id_pic.'.jpg'; | |
} | |
//one root | |
function getPadImgFolder($id,$digits_per_folder=3,$max_digits=10) | |
{ | |
return substr(str_pad($id,$max_digits,'0',STR_PAD_LEFT),0,$max_digits-$digits_per_folder); | |
} | |
//for very large databases | |
function getSubPadImgFolder($id,$digits_per_folder=3,$max_digits=30) | |
{ | |
$pad = str_pad($id,$max_digits,'0',STR_PAD_LEFT); | |
return chunk_split($pad,$digits_per_folder,DIRECTORY_SEPARATOR); | |
} | |
function getOrdImgFolder($id,$digits_per_folder=3) | |
{ | |
return (string)ceil($id / (str_pad('1',$digits_per_folder+1,'0'))); | |
} | |
function getDateImgFolder($timestamp) | |
{ | |
return | |
date('Y'.DIRECTORY_SEPARATOR | |
.'m'.DIRECTORY_SEPARATOR | |
.'d',$timestamp) | |
; | |
} | |
function getSparseImgFolder($id) | |
{ | |
#$hash = hash('sha1',$id,false); | |
$hash = hash('crc32',$id,false); | |
return | |
substr($hash,0,3).DIRECTORY_SEPARATOR | |
} | |
return; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment