PHP : Quelques fonctions PHP bien pratique
lundi 28 avril 2008 à 22:37 #77

Voici quelques fonctions PHP que j'utilise dans mes développements, bien pratique :
/******************************************
// Remplacer les accents par des caractères simples
/******************************************/
function sans_accents($chaine)
{
$cherche = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
$remplace = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
return(strtr($chaine, $cherche, $remplace));
}
/******************************************
// Enlève les charactères spéciaux pour les noms de fichiers :
function txt_nospecialchars_file($txt)
{
if ($txt) {
return ereg_replace("[\\][/][:][*][?][\"][<][>][|]", "", $txt);
}
}
/******************************************
// Créé le tableau contenant les repertoires et fichiers
/******************************************/
// @dir Chemin d'accès du répertoire
// @recursif Copie les sous-répertoire
function liste_repertoires($dir, $recursif = false)
{
$dir = rtrim($dir, '/'); // Enlève le slash en trop si existant
if (is_dir ($dir)) { // Répertoire
$dh = @opendir($dir); // Ouverture
} else {
echo $dir, ' n\'est pas un repertoire valide'; // Erreur
}
// Lecture
while (($file = @readdir($dh)) !== false ) { // Boucle pour parcourir le repertoire
if ($file !== '.' && $file !== '..') { // Ignore les répertoires de navigation
$path =$dir.'/'.$file; // Construction du chemin
if (@is_file($path)) { // Fichier
$tableau[$dir]['file'][] = $path;
} elseif ($recursif) { // Récursif accepté
$tableau[$dir]['dir'][] = $path;
$tabTmp = liste_repertoires($path); // Appel recursif pour lire a l'interieur de ce sous-repertoire
// Fusionne les tableaux
if (is_array($tabTmp) && is_array($tableau)) {
$tableau = array_merge($tableau, $tabTmp);
}
}
}
}
@closedir ($dh); // Ferme le répertoire courant
if (isset ($tableau)) {
return $tableau; // Renvois
}
}
/******************************************
// Copie du répertoire
/******************************************/
// On créé un répertoire de meme nom, puis on va chercher les fichiers, et on les copie.
// Si il y a des sous repertoires, appel recursif
// @source Chemin du répertoire à copier
// @destination Chemin du répertoire destination
// @arborescence Liste des répertoires à copier
// @recursif Copie les sous-répertoire
function repertoire_copie($source, $destination, $arborescence = array (), $recursif = false)
{
// Initialisation
// Liste des répertoires
if (empty($arborescence)) {
$arborescence = liste_repertoires($source, $recursif);
}
// Liste vide : Annule
if (empty($arborescence)) { // Répertoires
return NULL; // Annule
}
// Transforme la source en tableau pour être en boucle
if (!is_array($source)) {
$source = array($source);
}
// Boucle de copie
foreach ($source as $value) {
if (!is_dir($destination.'/'.basename($value))) { // Répertoire inexistant
mkdir($destination.'/'.basename($value)); // Création du répertoire
if (!empty($arborescence[$value]['file']) && isset($arborescence[$value]['file']) && is_array($arborescence[$value]['file'])) { // Fichier à copier existant
// Copie des fichiers
foreach ($arborescence[$value]['file'] as $fichier) { // Boucle
copy($fichier, $destination.'/'.basename($value).'/'.basename($fichier)); // Copie
}
}
// Sous-Répertoire
if ($recursif && !empty($arborescence[$value]['dir']) && isset($arborescence[$value]['dir']) && is_array($arborescence[$value]['dir'])) {
repertoire_copie($destination.'/'.basename($value), $arborescence[$value]['dir'], $arborescence);
}
}
}
return true; // Tâche éffectuée
}
/******************************************
// Renvois l'extension de l'image suivant son type
/******************************************/
// @image Nom de l'image
function image_filetype($image)
{
switch ($image)
{
case IMAGETYPE_JPEG : // Jpeg
$extension = 'jpg';
break;
case IMAGETYPE_GIF : // Gif
$extension = 'gif';
break;
case IMAGETYPE_SWF : // Flash exécutable
case IMAGETYPE_SWC : // Flash
$extension = 'swf';
break;
}
return $extension; // Renvois l'extension
}
/******************************************
// Nettoie et renvois le numéro de téléphone en fixe ou mobile
/******************************************/
// @numero Numéro de téléphone
function telephone($numero)
{
if ($numero) { // Numéro existant
// Nettoyage
$numero = str_replace('.','',$numero);
$numero = str_replace('-','',$numero);
$numero = str_replace(' ','',$numero);
$numero = str_replace('(','',$numero);
$numero = str_replace(')','',$numero);
$numero = str_replace('+33','',$numero);
// Numéro de portable ou fixe
if (substr($numero, 0, 2) == '06' || substr($numero, 0, 1) == '6' || substr($numero, 0, 5) == '00336' || substr($numero, 0, 6) == '003306') {
$table['fixe'] = '';
$table['mobile'] = $numero;
} else { // Fixe
$table['fixe'] = $numero;
$table['mobile'] = '';
}
return $table;
}
}
/******************************************
// Supprime les espaces en doublon
******************************************/
// @txt Texte à traiter
function espaces_supprime($txt)
{
return preg_replace('/\s{2,}/', ' ', trim($txt));
}
/******************************************
// Conversion des dates FR <-> US
******************************************/
// @txt Date à analyser
function x_txt_date_conv($txt)
{
$partie = explode(" ", $txt);
$date = explode("-", $partie[0]);
return $date[2] . "-" . $date[1] . "-" . $date[0] . " " . $partie[1];
}







Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire