123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- <?php
- // CODE LOCALE (locale -a)
- $langueEtLocalDispo=array( 'fr' => 'fr_FR',
- 'en' => 'en_US',
- 'oc' => 'oc_FR',
- );
- function convertHumain2octect($value) {
- if (preg_match('/[0-9]+[Kk]$/', $value)) {
- return intval($value) * 1024;
- } elseif (preg_match('/[0-9]+[Mm]$/', $value)) {
- return intval($value) * 1024 * 1024;
- } elseif (preg_match('/[0-9]+[Gg]$/', $value)) {
- return intval($value) * 1024 * 1024 * 1024;
- } else {
- return intval($value);
- }
- }
- function convertOctect2humain($value) {
- if ($value > 1000000000) {
- $return=round($value/1024/1024/1024, 1).'Go';
- }elseif ($value > 1000000) {
- $return=round($value/1024/1024, 1).'Mo';
- }elseif ($value > 1000) {
- $return=round($value/1024, 1).'Ko';
- } else {
- $return=$value;
- }
- return $return;
- }
- function checkMimeTypes($mimeTypesTest) {
- global $config;
- $mimeDetect=false;
- foreach ($config['mimeTypes'] as $mimeTypes) {
- if (preg_match('/'.$mimeTypes.'/', $mimeTypesTest)) {
- $mimeDetect = true;
- }
- }
- if (($config['mimeTypesConduct'] == 'allow' && $mimeDetect)
- || ($config['mimeTypesConduct'] == 'deny' && !$mimeDetect)) {
- return true;
- } else {
- return false;
- }
- return $return;
- }
- function genZip($id) {
- global $config;
- $uploadDirId=$config['uploadDir'].'/'.$id;
- $zipFile = $uploadDirId.'/'.$id.'.zip';
- if (!is_file($zipFile)) {
- $zip = new ZipArchive();
- if ($zip->open($zipFile, ZipArchive::CREATE)!==TRUE) {
- exit('Error in open <$zipFile>\n');
- }
- foreach (scandir($uploadDirId) as $file) {
- if (is_file($uploadDirId.'/'.$file)
- && !preg_match('/^\.(.+)\.cfg$/', $file)
- && !preg_match('/^\.(.+)\.small$/', $file)) {
- $zip->addFile($uploadDirId.'/'.$file,$file);
- }
- }
- $zip->close();
- }
- }
- function rrmdir($dir) {
- if (is_dir($dir)) {
- $objects = scandir($dir);
- foreach ($objects as $object) {
- if ($object != "." && $object != "..") {
- if (is_dir($dir."/".$object) && !is_link($dir."/".$object))
- rrmdir($dir."/".$object);
- else
- unlink($dir."/".$object);
- }
- }
- rmdir($dir);
- }
- }
- function cronExpire() {
- global $config;
- foreach (scandir($config['uploadDir']) as $uploadDirId) {
- if (!preg_match('/^\./', $uploadDirId) && is_dir($config['uploadDir'].'/'.$uploadDirId)) {
- $uploadDirIdExplode = explode("-", $uploadDirId);
- if ($uploadDirIdExplode[0] < time()) {
- if ($config['expireCron'] == 'cli') {
- echo $config['uploadDir'].'/'.$uploadDirId." "._('Expired')."\n";
- }
- rrmdir($config['uploadDir'].'/'.$uploadDirId);
- }
- }
- }
- }
- // https://www.binarytides.com/php-resize-large-images-imagemagick/
- function resize_image($src , $dest , $toWidth , $toHeight ) {
- if(!file_exists($src)) {
- echo '$src file does not exist';
- return false;
- } else {
-
- //OPEN THE IMAGE INTO A RESOURCE
- $img = imagecreatefromjpeg ($src); //try jpg
- if(!$img) {
- $img = imagecreatefromgif ($src); //try gif
- }
- if(!$img) {
- $img = imagecreatefrompng ($src); //try png
- }
- if(!$img) {
- die('Could Not create image resource $src');
- }
-
- //ORIGINAL DIMENTIONS
- list( $width , $height ) = getimagesize( $src );
-
- //ORIGINAL SCALE
- $xscale=$width/$toWidth;
- $yscale=$height/$toHeight;
-
- //NEW DIMENSIONS WITH SAME SCALE
- if ($yscale > $xscale) {
- $new_width = round($width * (1/$yscale));
- $new_height = round($height * (1/$yscale));
- } else {
- $new_width = round($width * (1/$xscale));
- $new_height = round($height * (1/$xscale));
- }
-
- //NEW IMAGE RESOURCE
- if(!($imageResized = imagecreatetruecolor($new_width, $new_height))) {
- die('Could not create new image resource of width : $new_width , height : $new_height');
- }
-
- //RESIZE IMAGE
- if(! imagecopyresampled($imageResized, $img , 0 , 0 , 0 , 0 , $new_width , $new_height , $width , $height)) {
- die('Resampling failed');
- }
-
- //STORE IMAGE INTO DESTINATION
- if(! imagejpeg($imageResized , $dest)) {
- die('Could not save new file');
- }
-
- //Free the memory
- imagedestroy($img);
- imagedestroy($imageResized);
-
- return true;
- }
- }
- function truncate($string, $max_length = 30, $replacement = '', $trunc_at_space = false) {
- $max_length -= strlen($replacement);
- $string_length = strlen($string);
-
- if($string_length <= $max_length)
- return $string;
-
- if( $trunc_at_space && ($space_position = strrpos($string, ' ', $max_length-$string_length)) )
- $max_length = $space_position;
-
- return substr_replace($string, $replacement, $max_length);
- }
- function lang2locale($langue) {
- global $langueEtLocalDispo;
- if ($langueEtLocalDispo[$langue] != '') {
- return $langueEtLocalDispo[$langue];
- } else {
- // par défaut
- return 'en_US';
- }
- }
- function locale2lang($localeRecherche) {
- global $langueEtLocalDispo;
- foreach($langueEtLocalDispo as $code=>$locale) {
- if ($locale == $localeRecherche) {
- return $code;
- break;
- }
- }
- // par défaut
- return 'en';
- }
- ?>
|