Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Morceaux de scripts PHP bien utiles, participez ;)

Aller à la page 1, 2, 3, 4  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
mowmow
WRInaute passionné
WRInaute passionné

Inscrit le: 03 Nov 2004
Messages: 962
Localisation: Zend Engine

URL permanente de ce messagePosté le : Mer Aoû 30, 2006 12:33    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

Bonjour à tous,

Je vous propose de faire un petit regroupement de fonctions PHP, javascript ou autre langage, que vous utilisez souvent et que vous désirez partager avec d'autres développeurs Wink

Je commence avec une petite fonction permettant de faire une pagination à la mode phpBB (voir en bas à droite du forum par exemple).

===================================================
Sommaire :

* Script permettant la mise en forme d'une liste de pages (comme un forum par exemple) par mowmow

* Debug (print_r avancé) par La Chaise Sauvage

* Fonction de comparaison de chaine de caractères en trois modes (test d'égalité, présence du mot dans l'autre ou expression régulière) par Mumuri

* Fonction permettant de lancer une commande linux($cmd) et d'afficher le succès ou l'échec de l'opération par dadovb

* Fonction qui met en gras le texte $x de la chaine $var

* Fonction de mise en forme de texte pour utilisation dans une URL (Par exemple pour de l'URL Rewriting) par magic corp.

===================================================

Code :
Code:
function pagination($actual_page, $page_number, $url, $show = 3) {
   // Erreurs
   if($show % 2 == 0 || $show < 3) {
      return 'Erreur : $show ne doit pas être pair, égal à 0 ou égal à 1';
   }
   if($page_number < $actual_page) {
      return 'Erreur : la page actuelle est supérieure au nombre de pages.';
   }
   // Erreurs
   if($page_number < $show*4) {
      for($i = 1; $i <= $page_number; $i++) {
         if($i != $actual_page) {
            $debut[] = '<a href="'.str_replace('{id}', $i, $url).'">'.$i.'</a>';
         }
         else {
            $debut[] = $i;
         }
      }
      return implode(', ', $debut);
   }
   
   // Debut
   $debut_fin = $actual_page <= $show-1 ? $show : $actual_page < $show*2 ? $actual_page+1 : $show;
   $debut_fin = $actual_page == 1 ? $show : $debut_fin;
   for($i = 1; $i <= $debut_fin; $i++) {
      if($i != $actual_page) {
         $debut[] = '<a href="'.str_replace('{id}', $i, $url).'">'.$i.'</a>';
      }
      else {
         $debut[] = $i;
      }
   }
   
   // Milieu
   $milieu_verify = $actual_page-1 < $page_number - $show*2 && $actual_page+1 > $show*2 ? 1 : 0;
   $milieu_debut = $milieu_verify ? ($actual_page-floor($show/2)) : 1;
   $milieu_end = $milieu_verify ? ($actual_page+floor($show/2)) : 0;
   for($i = $milieu_debut; $i <= $milieu_end; $i++) {
      if($i != $actual_page) {
         $milieu[] = '<a href="'.str_replace('{id}', $i, $url).'">'.$i.'</a>';
      }
      else {
         $milieu[] = $i;
      }
   }
   // Fin
   $fin_debut = $actual_page >= $page_number-$show+1 ? $page_number-$show : $actual_page > $page_number-$show*2 ? $actual_page-1 : $page_number-$show+1;
   $fin_debut = $actual_page == $page_number ? $page_number-$show+1 : $fin_debut;
   $fin_fin = $page_number;
   for($i = $fin_debut; $i <= $fin_fin; $i++) {
      if($i != $actual_page) {
         $fin[] = '<a href="'.str_replace('{id}', $i, $url).'">'.$i.'</a>';
      }
      else {
         $fin[] = $i;
      }
   }
   // Résultat
   return implode(', ', $debut).($milieu ? ' ... '.implode(', ', $milieu).' ... ' :  ' ... ').implode(', ', $fin);
}


Utilisation :
$actual_page : Page actuelle dans la pagination
$page_number : Nombre de pages au total
$url : ce qui apparaîtra comme lien pour chaque page, exemple : /sommaire/theme/page-{id} => Précisez {id} dans votre url pour que l'id y soit affecté.
$show : Nombre de liens à afficher au début, au milieu et à la fin, doit être impair !

En pratique :
Code:
echo pagination($_GET['page'], ceil($count/$limit), '/mon_url/{id}.html', 3);


Pour tester :
Code:
echo pagination(10, 50, '/mon_url/{id}.html', 3);



Je ferais un petit sommaire dans ce premier post si les contributions sont nombreuses Smile Je continuerais de poster quelques morceaux de scripts qui me sont bien utiles Wink

Bon partage Very Happy


Dernière édition par mowmow le Jeu Aoû 31, 2006 13:15; édité 2 fois
 
mowmow Visiter le site web du posteur
yanhl
WRInaute passionné
WRInaute passionné

Inscrit le: 04 Déc 2003
Messages: 792

URL permanente de ce messagePosté le : Mer Aoû 30, 2006 14:36    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

Perso quand j'ai besoin d'un truc assez générique, je cherche ici :
http://pear.php.net
http://www.phpclasses.org
 
yanhl Visiter le site web du posteur
mego
WRInaute impliqué
WRInaute impliqué

Inscrit le: 07 Mar 2006
Messages: 323
Localisation: fr / es

URL permanente de ce messagePosté le : Mer Aoû 30, 2006 14:40    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

Je crois qu'un site dédié serait plus approprié, non ?
De plus il existe déjà des dizaines de sites faisant ce que tu proposes.
 
mego Visiter le site web du posteur
La Chaise sauvage
WRInaute passionné
WRInaute passionné

Inscrit le: 11 Avr 2005
Messages: 655
Localisation: Saint Martin du Var

URL permanente de ce messagePosté le : Mer Aoû 30, 2006 15:35    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

vous avez tout les deux raison, mais vous êtes un peu rudes...

les sites existant recensent surtout des codes plus ou moins "complets", des CMS, des annuaires, de grosses classes etc... moi en lisant son post, j'avais pensé à des petits "trucs" et autres astuces de la vie de tous les jours.. un peu dans le genre des "top 10 custom javascript functions" de dustin diaz http://www.dustindiaz.com/top-ten-javascript ... sauf qu'on n'est pas obligés de se limiter à 10 (..et puis que ce ne sera sûrement pas les "top ten of all times", surtout les miennes ^^)

par exemple, moi j'ai une petite fonction que j'ai appelée "debug", et qui fait grosso modo la même chose qu'un print_r(); mais en mettant le truc un peu plus en forme. je l'utilise quand je ne sais plus ce qu'il y a dans une variable.. ^^

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



avec la ptite css qui va bien c'est encore mieux (mais pas obligatoire)

Code:

pre#debug {
   font-size:14px;
   color:#000000;
   background-color:#FFFFCC;
   border:#FFCC66 2px solid;
   padding:3px;
   width:500px;
   }
#debug a {
   font-family:Verdana;
   text-decoration:none;
   float:right;
   }


à utiliser sur un objet, un tableau.. enfin comme print_r, quoi, sauf que c'est un peu plus lisible à mon goût, et qu'on peut le cacher ou l'afficher d'un clic. l'argument optionnel sert à préciser si on veut afficher ou non le résultat du debug tout de suite, ou seulement quand on clique sur "debug"...

voilàvoilà.. j'espère que je ne vais pas me faire incendier ^^
 
La Chaise sauvage Visiter le site web du posteur
mowmow
WRInaute passionné
WRInaute passionné

Inscrit le: 03 Nov 2004
Messages: 962
Localisation: Zend Engine

URL permanente de ce messagePosté le : Mer Aoû 30, 2006 15:39    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

Voilà comme le dit "la chaise sauvage" c'est simplement des petits bouts de code qui rendent le développement plus simple, sans passer forcemment par un package complet de PEAR...
 
mowmow Visiter le site web du posteur
Grantome
WRInaute accro
WRInaute accro

Inscrit le: 16 Jan 2004
Messages: 2900

URL permanente de ce messagePosté le : Mer Aoû 30, 2006 16:56    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

Code:
<?php
echo "Hello World !";
?>
 
mowmow Visiter le site web du posteur
seek
Nouveau WRInaute

Inscrit le: 05 Nov 2004
Messages: 41

URL permanente de ce messagePosté le : Mer Aoû 30, 2006 16:57    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

Pour ma part je suis à la recherche d'un javascript qui permettrait de mettre un site en page de démarrage du browser et qui marcherait à la fois sous IE et Firefox.
 
seek Visiter le site web du posteur
Mumuri
WRInaute accro
WRInaute accro

Inscrit le: 03 Nov 2004
Messages: 1733
Localisation: bordeaux

URL permanente de ce messagePosté le : Mer Aoû 30, 2006 17:09    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

fonction de comparaison de chaine de caractére en trois modes (test d'égalité, présence du mot dans l'autre ou expréssion réguliére)

Code:

/**
regarde dans un tableau $interdits si $DossierCourant est "autorisé"
*/
function Est_Autorisé($DossierCourant,$Interdits){
    global $Goption;

    $drapeau = true;
    while ($drapeau && list(,$Dossier)=each($Interdits) ){
        if ( ComparaisonFichier($DossierCourant,$Dossier,$Goption))$drapeau = false;
    }
    reset($Interdits);
    return $drapeau;
}

/**
compare deux chaines
*/
function ComparaisonFichier($DossierCourant,$Dossier,$option=0){
    switch ($option){
        case 0:
            // faire une comparaison bit à bit
            return ($DossierCourant == $Dossier);
        break;

        case 1:
            // faire un filtre avec strpos
            $pos = strpos($mystring, $findme);
            if ($pos === false) {
                return false;
            } else {
                return true;
            }
        break;

        case 2:
            // faire un filtre avec les expressions réguliéres
            return ereg($Dossier,$DossierCourant);
        break;
    }
}



exemple d'appel
Code:

$Goption=0;// option de filtrage (laissez 0 si vous ne comprenez pas)
$ExtensionsInterdites= array('php','php3','html','htm');
if( Est_Autorisé("php",$ExtensionsInterdites))
echo "extension autorisé";
else
echo "extension interdite";

if( Est_Autorisé("gif",$ExtensionsInterdites))
echo "extension autorisé";
else
echo "extension interdite";

 
Mumuri
dadovb
WRInaute accro
WRInaute accro

Inscrit le: 22 Nov 2005
Messages: 1136

URL permanente de ce messagePosté le : Mer Aoû 30, 2006 17:31    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

Code:
function exec_cmd($cmd,$koi){
//permet de lancer une commande linux($cmd) et d'afficher le succès ou l'échec de l'opération
   exec($cmd, $out, $err);
   echo "<p>".$koi.": $cmd.....";
   if($err){
      echo "<font color='red'>ECHEC</font></p>";
      echo "<font color='red'>".$out[0]."</font></p><br>";
      return false;
   }else{
      echo "<font color='green'>succes</font></p>";
      return true;
   }
}


...toute petite commande ....

Code:
function highlight($x,$var) {
//fonction qui met en gras le texte $x de la chaine $var
   if ($var != "") {
      $xtemp = "";
      $i=0;
      while($i<strlen($x)){
         if((($i + strlen($var)) <= strlen($x)) && (strcasecmp($var, substr($x, $i, strlen($var))) == 0)) {
         //this version bolds the text. you can replace the html tags with whatever you like.
            $xtemp .= "<b>" . substr($x, $i , strlen($var)) . "</b>";
            $i += strlen($var);
         }
         else {
            $xtemp .= $x{$i};
            $i++;
         }
      }
   $x = $xtemp;
   }
   return $x;
}


tout est dit en commentaires...
 
dadovb
magic corp.
WRInaute impliqué
WRInaute impliqué

Inscrit le: 17 Juin 2004
Messages: 422
Localisation: Suisse

URL permanente de ce messagePosté le : Mer Aoû 30, 2006 20:40    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

Fonction de mise en forme de texte pour utilisation dans une URL (Par exemple pour de l'URL Rewriting)
Code:
function convert_for_uri($text) {
  // Définition du séparateur
  define("SEPARATOR", "-");

  $tofind = "àáâãäåòóôõöøèéêëçìíîïùúûüÿñ"; // Lettre accentuées
  $replac = "aaaaaaooooooeeeeciiiiuuuuyn"; // Equivalant non accentué

  // Mise en minuscule + suppression des lettres accentuées par leur équivalant non accentué
  $text = strtr(strtolower($text),$tofind,$replac);

  // Remplacement de caractère non alphanumérique par un séparateur
  $text = ereg_replace("[^a-z0-9]", SEPARATOR, $text);

  // Suppression des doubles séparateurs
  while (strstr($text, SEPARATOR . SEPARATOR))
    $text = str_replace(SEPARATOR . SEPARATOR, SEPARATOR, $text);

  // Retour avec suppression d’un possible séparateur en fin de chaîne
  return(ereg_replace(SEPARATOR . "$", "", $text));
}


Dernière édition par magic corp. le Jeu Aoû 31, 2006 0:15; édité 1 fois
 
magic corp. Visiter le site web du posteur
mowmow
WRInaute passionné
WRInaute passionné

Inscrit le: 03 Nov 2004
Messages: 962
Localisation: Zend Engine

URL permanente de ce messagePosté le : Mer Aoû 30, 2006 20:58    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

Pas mal l'utilisation de ereg_replace dans ta fonction magic corp Smile Merci bien Wink
 
mowmow Visiter le site web du posteur
Tilt
WRInaute passionné
WRInaute passionné

Inscrit le: 26 Mar 2005
Messages: 715

URL permanente de ce messagePosté le : Jeu Aoû 31, 2006 0:03    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

Je vous propose d'organiser un concours: script le + utile, script le plus optimisé (léger en charge serveur), script le + innovant et, bien sûr, prix du meilleur script php. Non ?
 
Tilt Visiter le site web du posteur
Sir Dipp
WRInaute accro
WRInaute accro

Inscrit le: 21 Juil 2003
Messages: 1021

URL permanente de ce messagePosté le : Jeu Aoû 31, 2006 9:02    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

Tilt a écrit:
Je vous propose d'organiser un concours: script le + utile, script le plus optimisé (léger en charge serveur), script le + innovant et, bien sûr, prix du meilleur script php. Non ?


Dans ce cas je peux dire
Code:
<?php
echo'Hello World';
?>


Plus sécireusement faut donner une base, genre le meilleure script pour supprimes les accents, le meilleure script pour rendre les adresse cliquables etc.

A+
 
Sir Dipp Visiter le site web du posteur
mowmow
WRInaute passionné
WRInaute passionné

Inscrit le: 03 Nov 2004
Messages: 962
Localisation: Zend Engine

URL permanente de ce messagePosté le : Jeu Aoû 31, 2006 10:22    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

Pour les utilisateurs expérimentés je vous conseille également : http://tech.motion-twin.fr/

Et plus précisemment pour PHP : NSpod, PHPTal et leur librairie SQL

-http://tech.motion-twin.fr/php_sql.html
-http://tech.motion-twin.fr/php_spod.html
-http://phptal.motion-twin.com/
 
mowmow Visiter le site web du posteur
baptiste
WRInaute impliqué
WRInaute impliqué

Inscrit le: 25 Avr 2004
Messages: 497

URL permanente de ce messagePosté le : Jeu Aoû 31, 2006 10:57    Sujet du message: Morceaux de scripts PHP bien utiles, participez ;)

L’idée est bonne continuons. Mais une fois le poste lancé il va falloir créer un index des scripts.
 
baptiste Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 4 - Aller à la page 1, 2, 3, 4  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort