Snippets

[PHP] Calculer la taille d’un dossier

Nouveau snippet aujourd’hui que j’ai été amené à utiliser dans un projet PHP personnel. Ce petit bout de code va vous permettre de calculer la taille d’un dossier, de vous l’arrondir et de vous ressortir la bonne unité entre K, M, G, P et T.

function getFolderSize($path){
	$size = 0;
	foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $file){
		$size += $file->getSize();
	}
 
	$factor = (int)(log($size, 1000));
	$units = ['B', 'K', 'M', 'G', 'T', 'P'];
	$size = sprintf("%.2f", $size / pow(1000, $factor)) . $units[$factor];
 
	return $size;
}

À noter que PHP 5.5 peut vous permettre d’éviter d’avoir à traiter un tableau pour la variable $units. La fonction devient alors :

function getFolderSize($path){
	$size = 0;
	foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $file){
		$size += $file->getSize();
	}
 
	$factor = (int)(log($size, 1000));
	$units = 'BKMGTP';
	$size = sprintf("%.2f", $size / pow(1000, $factor)) . @$units[$factor];
 
	return $size;
}

Et vous pouvez aussi ajouter un paramètre afin de préciser très facilement le nombre de chiffres après la virgule :

function getFolderSize($path, $decimals = 2){
	$size = 0;
	foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $file){
		$size += $file->getSize();
	}
 
	$factor = (int)(log($size, 1000));
	$units = 'BKMGTP';
	$size = sprintf("%.{$decimals]f", $size / pow(1000, $factor)) . @$units[$factor];
 
	return $size;
}

De rien 😉

Aide : la documentation PHP sur la fonction filesize()

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email

Gérer le responsive sur vos vidéos iframe

Aujourd’hui il devient de plus en plus nécessaire de rendre un site responsive afin de répondre aux exigences des tous les devices susceptibles d’y accéder… Si dorénavant de nombreux frameworks CSS découpant nos pages en grilles existent, l’intégration de vidéos via des iframes reste toujours un casse tête : mauvaises dimensions, bandes noires, débordement… Heureusement, l’excellent Grafikart a récemment publié une astuce de ninja qui vient résoudre tous vos soucis avec quelques lignes de CSS.
J’utilise d’ailleurs cette astuces sur toutes les vidéos du blog et je suis très content du résultat. Je me suis donc permis de reprendre son astuce.

Si vous êtes développeur et que vous cherchez quelques astuces, allez faire un tour sur le site de Gafikart. Une vraie mine d’informations, de tutoriels, d’astuces et de bon conseil. Sans compter la communauté qu’il a réussi à créer, elle aussi pleine de ressources !
(suite…)

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email

Personnalisez l’ouverture du terminal sous Linux, à la Matrix !

Matrix_Norris.1920x1080 Oui vous savez, un message du même type que celui qui s’affiche sur l’écran de Néo dans le premier épisode de Matrix ! Mais si vous savez forcément de quoi je parle ! Enfin tous les geeks dignes de ce nom sauront… Non ? Bon ok…  

Alors, ça vous tente ? (suite…)

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email

[PHP] Redimensionner des images automatiquement

Wallpaper PHP - Code while awake
Ce matin c’est un snippet PHP que je vous propose : une petite fonction qui permet de jouer avec les dimensions d’une image. Cette fonction bien pratique me sert beaucoup dans l’un de mes projets, voici ce qu’elle sait faire :

  • Redimensionnement d’images en conservant les proportions (calcul de la largeur en fonction de la hauteur ou de la hauteur en fonction de la largeur),
  • Renommage et déplacement de l’image où vous voulez,
  • Formats acceptés : JPEG, GIF et PNG,
  • Utilisation au choix de la librairie GD ou d’ImageMagick,
  • Conversion automatique en JPEG,
  • Enfin, si aucun redimensionnement n’est demandé, la fonction permet aussi de convertir une image GIF ou PNG en JPEG.

(suite…)

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email

[PHP] Une fonction de debug bien pratique

Voici une petite fonction PHP que j’utilise dans tous mes projets et qui m’a sauvé la vie de nombreuses fois. Cette fonction met simplement en forme la fonction PHP debug_backtrace() pour la rendre plus lisible. Elle renseigne aussi la ligne à laquelle elle est utilisée (pratique quand on a mis plein de debug() partout et qu’on ne sait plus où ils sont).

(suite…)

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email

[PHP] Convertir un PDF en .JPG avec Image Magic

Image Magic est une extension PHP normalement native qui permet de réaliser un grand nombre d’opération parfois très avancées sur des images.

Créations d’effets visuels (reflets), parcours d’images dans un dossier, redimensionnements, création de GIF animés… Les possibilités sont vraiment très variées. Nous allons voir comment cette extension peut nous permettre de convertir un .pdf en .jpg de manière simple et efficace, en à peine 10 lignes.

Explications

Tout d’abord assurez-vous que l’extension est bien installée sur votre serveur.

On commence par créer deux variables (le code est explicite) :

$pdf_file = './pdf/demo.pdf';
$save_to = './jpg/demo.jpg';

On exécute maintenant le commande Imagemagick convert.

exec('convert "'.$pdf_file.'" -colorspace RGB -resize 800 "'.$save_to.'"', $output, $return_var);

Enfin un petit test pour vérifier que tout c’est bien passé :

if($return_var == 0) {
     print "Conversion OK";
}
else print "Conversion failed.<br />".$output;

La fonction complète :

$pdf_file = './pdf/demo.pdf';
$save_to = './jpg/demo.jpg';
 
exec('convert "'.$pdf_file.'" -colorspace RGB -resize 800 "'.$save_to.'"', $output, $return_var);
 
if($return_var == 0) {
     print "Conversion OK";
}
else print "Conversion failed.<br />".$output;

Si vous souhaitez plus d’information sur la commande convert, ou bien sur ImageMagick. J’espère que ce petit snippet vous servira !

Source : snipplr.com

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email