Morceaux de scripts PHP bien utiles, participez ;)

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


La Chaise sauvage
WRInaute passionné
WRInaute passionné
 
Messages: 690
Inscription: Lun Avr 11, 2005 10:37

Message le Mer Jan 17, 2007 11:04

fablezouave a écrit:* Utilisation de fonctions obsolètes
* Optimisation nulle : certains codes de dix lignes s'ecrivent en une seule
* le pire : certains contiennent des trous de sécurité

Et j'en passe et des meilleurs ....


ah ben non ça c'est dommage, que tu en passes.

au contraire, à mon avis, un des intérêts de ce post, ça peut être d'attirer l'attention des gens sur les failles/faiblesses/erreurs de leur code, leur permettre de progresser....

personne ne s'attend à voir naître ici un nouveau Codes-Sources, il s'agit plus de comparer des façons de coder, d'en discuter... et pourquoi pas de corriger le code des autres :wink:


Xou
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 187
Inscription: Ven Juin 02, 2006 16:52

Message le Jeu Jan 18, 2007 11:28

Quelques fonctions que je me suis créé, bien souvent en catastrophe et je ne suis pas revenu dessus !

Ahh ben oui : n'en déplaise à certains... on a pas toujours le temps d'optimiser (dans le monde du travail) lorsque la deadline est courte, surtout quand on est seul sur le projet.

Mais comme le dit La chaise sauvage: libre à vous de les commenter, je ne vous les donne pas comme étant des perles de code, mais elles m'ont bien dépanné et j'espère qu'elles vous seront utiles. ;)

Code: Tout sélectionner
// Executer un fichier PHP et le placer dans le buffer
// (sorte de file_get_contents permettant l'execution de php dans le fichier)
function inc2buffer($file) {
   ob_start();
   include($file);
   $output = ob_get_contents();
   ob_end_clean();
   return $output;
}

// Obtenir l'extension d'un fichier
function getExtension($file){
   $len = strlen($file);
   $pos = strrpos($file, ".");
   $type = substr($file, $pos + 1, $len);
   return strtolower($type);
}

// crypter une adresse email
function cryptEmail($mail){
   $ret_mail="";
   $len=strlen($mail);
   for($x=0;$x<$len;$x++){
      $ord=ord(substr($mail,$x,1));
      $ret_mail.="&#$ord;";
   }
   return $ret_mail;
}

// Enlever tous les accents
// Celle là n'est pas de moi mais il me semble l'avoir récupérée sur Nexen dans mes débuts, ça fais un bail que je la traine :)
function stripAccent($text) {
   $out = strtr($text,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËéèêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn");
   return $out;
}


hipopulation
WRInaute impliqué
WRInaute impliqué
 
Messages: 346
Inscription: Mer Juil 28, 2004 10:14

Message le Jeu Jan 18, 2007 11:40

A propos de la fonction debug de lachaisesauvage....

Petite amelioration (utilisation de display (none/block) a la place de visibility :

Code: Tout sélectionner
function debug($obj,$visible=0) {
   $v = ($visible==1) ?  'block' : 'none';
   echo '<a href="#" onclick="document.getElementById(\'debug\').style.display=\'block\'" id="switch">debug</a>
   <pre id="debug" style="visibility:'.$v.'"><a href="#" onclick="document.getElementById(\'debug\').style.display=\'none\'">[X]</a>
   <code>';
   print_r($obj);
   echo '</code></pre>';
}


david96
WRInaute accro
WRInaute accro
 
Messages: 1407
Inscription: Dim Aoû 28, 2005 21:56

Select dynamique : table SQL

Message le Jeu Jan 18, 2007 15:11

Pour construire un <select> dynamique provenant de n'importe quelle table (client, fournisseur, département, pays, critère, rubrique etc...) de votre base de données.

Voilà comment je fais

Dans une fichier séparé, afin d'appeler ensuite ces fonctions par un require_once();


Code: Tout sélectionner
         function selectTable($nomtable, $where = NULL, $order = NULL)
         {
            $sql = "SELECT * FROM $nomtable";
            if ( $where !== NULL ) $sql .= " WHERE $where";
            if ($order !== NULL)$sql.=" ORDER BY $order ";
            
            $query=mysql_query($sql);
            
            $ret = array();
            while ( $donnee = mysql_fetch_assoc($query))
            {
               $ret[] = $donnee;
            }
            return $ret;
         }
         
         function sqlSelect($sqlDonnee, $nomCol, $valCol)
         {
            for($i = 0 ; $i<count($sqlDonnee) ; $i++)
            {
               $selectDonee["name"][$i] = $sqlDonnee[$i][$nomCol];
               $selectDonee["value"][$i] = $sqlDonnee[$i][$valCol];
            }
         return $selectDonee;
         }
         
         function htmlSelect($nom, $options, $selected = NULL, $css = NULL)
         {
            $select  = "<select name=\"".htmlentities($nom)."\"";
            if ( $css !== NULL )
               $select .= " $css>";
            else
               $select .= ">";

            for($i = 0 ; $i<count($options["name"]) ; $i++)
            {
               if ( $selected !== NULL && $selected == $options["value"][$i] )
                  $select .= "<option value=\"".$options["value"][$i]."\" selected=\"selected\">".$options["name"][$i]."</option>\n";
               else
                  $select .= "<option value=\"".$options["value"][$i]."\">".$options["name"][$i]."</option>\n";
            }
            $select .= "</select>\n";

            return $select;
         }


Et voilà c'est tout bête, bien sûr j'ai omis les conditions d'erreur afin d'éclaircir le script...

Ensuite on peut construire nos <select> désirés n'importe où et ça prend seulement 3 lignes de code :-D!
exemple, je veux un <select> de ma table pays avec par défaut la France en "selected" qui est l'id 72 dans la base de données :

Code: Tout sélectionner
         
         $paysSelect = isset($_POST["pays"]) ? ($_POST["pays"]) : ("72");
         
         $selectPays=selectTable("pays");
         $pays=sqlSelect($selectPays,"nom","id");         
         echo htmlSelect("id", $pays, $paysSelect); // on construit notre <select>



l'avantage, c'est que ce <select> est dynamique, c'est à dire que si on ajoute, supprime etc... un champ, le tout sera automatiquement mis à jour sur vos pages , elle n'est pas belle la vie :-D

bistory
WRInaute discret
WRInaute discret
 
Messages: 96
Inscription: Sam Juin 17, 2006 19:11

Message le Jeu Jan 18, 2007 19:39

Voici le mien, il permet de formatter une date timestamp, anglaise avec les minutes et secondes ou anglaise sans heures vers le format français :
Code: Tout sélectionner
function date_formatter($date)
{
if($date == '0000-00-00') return '00/00/0000';
elseif($date == '0000-00-00 00:00:00') return '00/00/0000 à 00h00';

if(($len_date=strlen($date)) == 10)
{
   return date('d/m/Y',strtotime($date));
}
elseif($len_date == 19)
{
   return date('d/m/Y à H\hi',strtotime($date));
}

return 0;
}

Morceaux de scripts PHP bien utiles, participez ;)

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités