
Auteur : doof
| Version : 16/01/2006 | | |
| |
class Alternate
{
var $item_list;
var $item_nbr;
var $item;
var $mode;
var $lastitem = 0;
var $ping_mode = 0;
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];
}
function set_mode($mode, $init = TRUE)
{
if ($init == TRUE) {
$this->init();
$this->mode = $mode;
} else {
$this->item = $this->lastitem;
$this->mode = $mode;
$this->push();
}
}
function push()
{
if ($this->item_nbr > 0) {
$this->lastitem = $this->item;
switch ($this->mode) {
case 0:
($this->item < $this->item_nbr) ? $this->item++ : $this->init();
break;
case 1:
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:
$this->item = mt_rand(0, $this->item_nbr);
break;
}
}
}
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++;
}
function get($push = TRUE)
{
$return = $this->item_list[$this->item];
$push == TRUE ? $this->push() : FALSE;
return $return;
}
function init()
{
$this->item = 0;
}
} |
Exemple d'utilisation
$bgcolor = new Alternate('#44aa44', '#ffff77', '#ee4444');
$bgcolor->set_mode(1);
$align = new alternate('left', 'center', 'right');
$align->set_mode(1);
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>'; |
|
| |
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);
if (($array1[1] < $array2[1]) or (($array1[1] == $array2[1]) and ($array1[0] <= $array2[0]))) {
$age = $array2[2] - $array1[2];
} else {
$age = $array2[2] - $array1[2] - 1;
}
echo $age." ans";
}
donne_age("18/02/1981"); |
|
| | 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) {
$chemin_complet = "";
if ($idpage != 0) {
$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'];
$chemin_page_en_cours = " -> <a href=\"index.php?id_p=".$idpage."\">".$titrepage."</a>";
$chemin_complet = recur_chemin($idparent).$chemin_page_en_cours;
}
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; |
|
| |
- 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.
|
| | 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");
$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 :
$mypass = mkpassword();
$mypass = mkpassword(16);
$mypass = mkpassword(8, false);
$mypass = mkpassword(8, true, true);
echo $mypass["string"]." => ".$mypass["litteral"]; |
|
| | 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 :
function affiche_plan_site($id_page) {
$strSQL = "SELECT * FROM PAGES WHERE id_parent = ".$id_page;
$resultat = requete_SQL($strSQL);
if (mysql_affected_rows() !=0) {
echo "<ul>\n";
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";
}
} |
|
| |
Pour ceux qui trouve les solutions comme Smarty, un peu trop lourd, voici TitanCache. TitanCache permet de mettre en cache et de restaurer le contenu dans une mini librairie de 43 lignes de codes (en comptant les lignes de commentaires).
|
Auteur : Swoög
| Version : 03/07/2006 | | |
| | 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;
} |
|
| | Récupération rapide des variables |
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;
} |
|
| | Ce code se limite à 999,999,999,999. <?php
function convertitNombreEnLettres($nombreAConvertir)
{
$tablePuissancesDeDix = array("", "mille", "millions", "milliards");
$tableConversionEtapeDeux = array("", "dix", "vingt", "trente", "quarante", "cinquante", "soixante", "soixante", "quatre-vingt", "quatre-vingt");
$tableConversionEtapeUnOuTrois = array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf");
$tableConversionDeLaDizaineQuiFaitChier = array("", "onze", "douze", "treize", "quatorze", "quinze", "seize");
$nombreAConvertir = number_format($nombreAConvertir);
$tableauTemporaire = explode(',', $nombreAConvertir);
for($i=0; $i<count($tableauTemporaire); $i++)
{
for($j=0; $j<strlen($tableauTemporaire[$i]); $j++)
{
switch($j)
{
case strlen($tableauTemporaire[$i])-3:
if(substr($tableauTemporaire[$i], $j, 1) > 0)
{
if(substr($tableauTemporaire[$i], $j, 1) > 1)
echo $tableConversionEtapeUnOuTrois[substr($tableauTemporaire[$i], $j, 1)];
echo " cents ";
}
break;
case strlen($tableauTemporaire[$i])-2:
if(substr($tableauTemporaire[$i], $j, 1) > 1)
echo $tableConversionEtapeDeux[substr($tableauTemporaire[$i], $j, 1)];
if(substr($tableauTemporaire[$i], $j, 1) == 1 || substr($tableauTemporaire[$i], $j, 1) == 7 || substr($tableauTemporaire[$i], $j, 1) == 9)
if(substr($tableauTemporaire[$i], $j+1, 1) > 6)
echo "-dix";
break;
case strlen($tableauTemporaire[$i])-1:
if(substr($tableauTemporaire[$i], $j, 1) == 1)
echo " et ";
if(substr($tableauTemporaire[$i], $j-1, 1) == 1 ||substr($tableauTemporaire[$i], $j-1, 1) == 7 || substr($tableauTemporaire[$i], $j-1, 1) == 9)
if(substr($tableauTemporaire[$i], $j, 1) < 7)
echo "-".$tableConversionDeLaDizaineQuiFaitChier[substr($tableauTemporaire[$i], $j, 1)];
else
echo "-".$tableConversionEtapeUnOuTrois[substr($tableauTemporaire[$i], $j, 1)];
else
echo "-".$tableConversionEtapeUnOuTrois[substr($tableauTemporaire[$i], $j, 1)];
break;
}
}
echo " ".$tablePuissancesDeDix[count($tableauTemporaire)-$i-1]." ";
}
}
convertitNombreEnLettres(124036977);
?> |
|
Consultez les autres pages sources
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2006
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|