IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Divers
        Alterner des valeurs
        Calculer l'age d'une personne
        Génération d'un mot de passe
        Parser un fichier CSV
        Récupération rapide des variables de formulaire/sessions/Url/Cookies
        Créer un 'chemin de fer' (suite de lien donnant la position dans l'arborescence d'un site)
        Générer un plan d'un site sous forme de listes imbriquées
        Créer un livre d'or



Auteur : doof
Version : 16/01/2006
Alterner des valeurs
/**
 * Class Alternate V2 by doof
 * Cette classe alterne des valeurs qu'on lui passe en parametre
 *
 * $instance = new Alternate('a', 'b', 'c');
 * echo $instance->get(); // affiche a
 * echo $instance->get(); // affiche b
 * echo $instance->get(); // affiche c
 * echo $instance->get(); // affiche a
 * ...
 */
class Alternate
{
   /***************************************************************************
   *Liste des valeurs
   *@var array
   **/
   var $item_list;

   /***************************************************************************
   *Nombre de valeurs dans la liste
   *@var int
   **/
   var $item_nbr;

   /***************************************************************************
   *Index de la valeur en cours dans la liste
   *@var int
   **/
   var $item;

   /***************************************************************************
   *Mode d'alternation
   *@var int
   **/
   var $mode;

   /***************************************************************************
   *Valeur de l'index precedant celui en cours
   *@var int
   **/
   var $lastitem = 0;

   /***************************************************************************
   *Sens dans lequel le mode ping-pong tourne actuellement, 0 = montant et 1 = descendant
   *@var int
   **/
   var $ping_mode = 0;

   /***************************************************************************
    *Constructeur, peut prendre soit plusieurs arguments qui sont les valeurs a alterner,
    *soit un tableau qui contient ces valeurs
    ****/
   function alternate()
   {
      $this->item_nbr = func_num_args()-1;
      if ($this->item_nbr == 0) {
         if (is_array(func_get_arg(0))) {
            $index=0;
            $tab = func_get_arg(0);
            ksort($tab);
            foreach ($tab as $val) {
               $this->item_list[$index++] = $val;
            }
            $this->item_nbr = sizeof($this->item_list)-1;
         } else {
            $this->item_list[0] = func_get_arg(0);
         }
      } else {
         $this->item_list = func_get_args();
      }
      $this->set_mode(0);
      $this->lastitem = $this->item_list[0];
   }

   /**************************************************************************
   *Définit le mode d'alternance
   *@param int $mode Le mode d'alternance 0 = linéaire 1 = ping-pong 2 = aléatoire
   *@param boolean $init Remet à zero la liste si TRUE
   **/
   function set_mode($mode, $init = TRUE)
   {
      if ($init == TRUE) {
         $this->init();
         $this->mode = $mode;
      } else {
         $this->item = $this->lastitem;
         $this->mode = $mode;
         $this->push();
      }
   }

   /**************************************************************************
   *Passe à la valeur suivante suivant le mode courant
   **/
   function push()
   {
      if ($this->item_nbr > 0) {
         $this->lastitem = $this->item;
         switch ($this->mode) {
         case 0: // Mode lineaire
            ($this->item < $this->item_nbr) ? $this->item++ : $this->init();
            break;
         case 1: // Mode Ping-pong
            if ($this->ping_mode == 0) {
               ($this->item < $this->item_nbr) ? ($this->item++) : ($this->ping_mode = 1);
            }
            if ($this->ping_mode == 1) {
               ($this->item > 0) ? ($this->item--) : ($this->item++ + $this->ping_mode = 0);
            }
            break;
         case 2: // Mode Random simple
               $this->item = mt_rand(0, $this->item_nbr);
            break;
         }
      }
   }

   /**************************************************************************
   *Ajoute une valeur dans la liste
   *@param string $value la valeur a rajouter
   *@param int $offset l'index, à la fin si FALSE ou valeur impossible
   **/
   function add($value, $offset = FALSE)
   {
      if (is_int($offset) && $offset >= 0 && $offset <= $this->item_nbr) {
         array_splice($this->item_list, $offset, 0, $value);
      } else {
         $this->item_list[] = $value;
      }
      $this->item_nbr++;
   }

   /**************************************************************************
   *Retourne la valeur en cours
   *@param boolean $push passe automatiquement à la valeur suivante si TRUE
   *@return string la valeur
   **/
   function get($push = TRUE)
   {
      $return = $this->item_list[$this->item];
      $push == TRUE ? $this->push() : FALSE;
      return $return;
   }

   /**************************************************************************
   *Remet à zero l'alternance
   **/
   function init()
   {
      $this->item = 0;
   }
}
Exemple d'utilisation
   //initialisation de la couleur de fond $bgcolor
   //alterne entre 3 valeurs mode ping-pong
   $bgcolor = new Alternate('#44aa44', '#ffff77', '#ee4444');
   $bgcolor->set_mode(1);
   
   //initialisation de la variable d'alignement $align
   //3 valeurs aussi en mode ping-pong
   $align = new alternate('left', 'center', 'right');
   $align->set_mode(1);
   //affichage du tableau
   echo '<table border="0" width="150">'."\n";
   for ($i = 0; $i <= 10; $i++) {
   echo "\t".'<tr><td bgcolor="'.$bgcolor->get( FALSE ).'" align="'.$align->get().'">'.$bgcolor->get().'</td></tr>'."\n";
   }
   echo '</table>';

Auteur : titoumimi
Version : 03/07/2006
Calculer l'age d'une personne
Paramètre de la fonction : $date_naissance (La date de naissance de la personne au format jj/mm/aaaa).
Calcul de l'age d'une personne
function donne_age($date_naissance) {
    $date_encours = date("d/m/Y");
    $array1 = explode("/", $date_naissance);
    $array2 = explode("/", $date_encours);
    
    // $arrayX[0] = jour;
    // $arrayX[1] = mois;
    // $arrayX[2] = année;
    
    if (($array1[1] <= $array2[1]) && ($array1[0] <= $array2[0])) {
        $age = $array2[2] - $array1[2];
    } else {
        $age = $array2[2] - $array1[2] - 1;
    }
    echo $age." ans";
}

donne_age("18/02/1981");

Auteur : CrazyCat
Version : 03/07/2006
Génération d'un mot de passe
La petite fonction ci-dessous le réalise mais offre quelques options qui ne sont pas dépourvues d'intérêt :

  • Choix de la longueur du mot de passe (8 par défaut)
  • Choix du type de lettres (majuscules ou minuscules)
  • Possibilité d'épeler le mot de passe (désactivé par défaut)
<?
function mkpassword($len=8, $min=true, $spell=false) {
   $ok_chars = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "Alpha", "Bravo", "Charlie", "Delta", 
       "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November", "Oscar", 
    "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whisky", "X-ray", "Yankee", "Zulu");
   // Le tableau des caractères utilise le code phonétique international
   $password["string"] = "";
   $password["litteral"] = "";
   for ($i=0; $i<$len; $i  ) {
      $val = rand(0,count($ok_chars) - 1);
      $password["string"] .= $ok_chars[$val]{0} ;
      $password["litteral"] .= $ok_chars[$val]." ";
   }
   if ($min == true)
      $password["string"] = strtolower($password["string"]);
   $password["litteral"] = trim($password["litteral"]);
   if ($spell == true) {
      return $password;
   } else {
      return $password["string"];
   }
}
?>
La fonction peut être appelée de quatres manières différentes et renverra deux types de données :
/* Cas 1: appel simple */
$mypass = mkpassword();
// Renvoit une chaîne de 8 caractères, chiffres et lettres minuscules

/* Cas 2: choix de la longueur du mot de passe */
$mypass = mkpassword(16);
// renvoit une chaîne de 16 caractères, chiffres et lettres minuscules

/* Cas 3: lettres majuscules */
// *** Atention *** Il faut obligatoirement donner une longueur
$mypass = mkpassword(8, false);
// renvoit une chaîne de 8 caractères, chiffres et lettres majuscules

/* Cas 4: Mot de passe épelé */
$mypass = mkpassword(8, true, true);
// renvoit un tableau contenant le mot de passe et son épelation
echo $mypass["string"]." => ".$mypass["litteral"];

Auteur : Swoög
Version : 03/07/2006
Parser un fichier CSV
Cette fonction permet aussi de choisir le séparateur et ajoute une possibilité de condiérer la première ligne comme en-tête...
function parse_csv($file, $head = false, $sep = ';')
{
   $content = file($file);
   $headers = NULL;
   if($head)
   {
      $headers = array_shift($content);
      $headers = explode($sep, $headers);
   }
   foreach($content as $k => $v)
   {
        $content[$k] = explode($sep, $v);
        if($head) foreach($content[$k] as $num_col => $value)
            $content[$k][$headers[$num_col]] = $value;
   }
   return $content;
}

Auteur : guitou12
Version : 27/07/2006
Récupération rapide des variables de formulaire/sessions/Url/Cookies
Récupération rapide des variables
/********************
      RECUP VAR
*********************/
/** 
* Récupère les vars d'url, de session suivant les paramètres passés
* get (resp. post) convertit en majuscules les valeurs alors que get_lower (resp.post_lower) recupere la valeur brute
* @param $param Le type de récupération (get / post / session etc)
* @param $nom_var Le nom de la variable à récupérer
* @param $defaut_val La valeur par défaut de retour si la variable n'est pas définie
* @return La valeur de la variable
*/
function recup_var($param,$nom_var,$defaut_val)
{
    switch($param)
    {
        case 'get':
            if (isset ($_GET[$nom_var])) $res=$_GET[$nom_var]; else $res=$defaut_val; break;
        case 'post':
            if (isset ($_POST[$nom_var])) $res=$_POST[$nom_var]; else $res=$defaut_val; break;
        case 'session':
            if (isset ($_SESSION[$nom_var])) $res=$_SESSION[$nom_var]; else $res=$defaut_val; break;
               case 'cookie':
            if (isset ($_COOKIE[$nom_var])) $res=$_COOKIE[$nom_var]; else $res=$defaut_val; break;
    }
    return $res;
}

Auteur : titoumimi
Version : 27/07/2006
Créer un "chemin de fer" (suite de lien donnant la position dans l'arborescence d'un site)
Supposons d'abord que vous avez une base de donnée avec une table pour vos pages (nommons la PAGES, parfaitement au hasard). Supposons ensuite que dans cette table, vous avez un champ Id_page (identifiant de la page en cours, un auto increment fera très bien l'affaire), un autre appelé Id_parent (l'ID de la page parent, le N+1 dans l'organigramme), et un champ Titre (contenant le titre de votre page).
La seule règle imposée sera que l'Id_parent de la page racine sera 0. Nous pouvons à présent passer au code :
function recur_chemin($idpage) {
    // on définit la variable pour éviter le warning
    $chemin_complet = "";
    // Si l'id de la page en cours est différent de 0 
    // (0 = page parente de la page racine = inexistante)
    if ($idpage != 0) {
        // on récupère les informations de la page en cours dans la DB
        $strSQL = "SELECT * FROM PAGES WHERE Id_page=".$idpage;
        $resultat = requete_SQL($strSQL);
        $tabl_result = mysql_fetch_array($resultat);
        
        $titrepage = $tabl_result['Titre'];
        $idparent = $tabl_result['Id_parent'];
        
        // création du lien vers la page en cours
        $chemin_page_en_cours = " -> <a href=\"index.php?id_p=".$idpage."\">".$titrepage."</a>";
        
        // Concaténation du lien de la page N-1 et
        // du lien de la page en cours
        $chemin_complet = recur_chemin($idparent).$chemin_page_en_cours;
    }
    //renvoie le chemin complet
    return $chemin_complet;
}
Il nous suffit maintenant d'appeler cette fonction à l'endroit indiqué comme suit :
$chemin_de_fer = recur_chemin($id_de_la_page_en_cours);
echo $chemin_de_fer;

Auteur : titoumimi
Version : 27/07/2006
Générer un plan d'un site sous forme de listes imbriquées
En reprenant la même structure de base que précédement, nous allons maintenant générer un plan du site sous forme de listes imbriquées, qui se mettra à jour tout seul dès que la base sera modifiée :
// Affiche le plan du site
// Paramètres : Id de la page en cours (0 lors du premier passage) pour lister toutes les pages filles

function affiche_plan_site($id_page) {
    // Sélectionne l'ensemble des pages filles de la page courante
    $strSQL = "SELECT * FROM PAGES WHERE id_parent = ".$id_page;
    $resultat = requete_SQL($strSQL);
    // Si la requête a renvoyé des résultats
    if (mysql_affected_rows() !=0) {
        echo "<ul>\n";
        // Tant qu'il y a des pages filles, on affiche un lien vers elle
        // et pour chacune d'elle, on rappelle la fonction
        while ($tabl_result = mysql_fetch_array($resultat)) {
            echo "<li>\n";
            echo "<a href=\"index.php?id_p=".$tabl_result['Id_page']."\">";
            echo $tabl_result['Titre_'];
            echo "</a>\n";
            affiche_plan_site($tabl_result['Id_page']);
            echo "</li>\n";
        }
        echo "</ul>\n";
    }
}

Auteur : Ludovic Giambiasi
Version : 22/08/2006
Téléchargez le zip
Créer un livre d'or
  • Vous devez créer une table dans votre base de données
    CREATE TABLE livre (
    codelivre int(11) NOT NULL auto_increment,
    message blob,
    expediteur varchar(100),
    date date,
    PRIMARY KEY (codelivre)
    );
    
  • Vous pouvez ajouter des champs (e-mail, nom, prénom...)

    • Vous devez changer les paramètres de connexion à votre base dans le fichier 'connexion.php'.
    • Adaptez le code du livre d'or au design de votre site. Le fichier 'livre.php' contient le code pour lire les messages du livre d'or. Le fichier 'ecriture.php' permet l'écriture de messages.


Consultez les autres pages sources


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.