Morceaux de scripts PHP bien utiles, participez ;)
50 messages • Page 1 sur 4 • 1, 2, 3, 4
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
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
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 :
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 :
Pour tester :
Je ferais un petit sommaire dans ce premier post si les contributions sont nombreuses
Je continuerais de poster quelques morceaux de scripts qui me sont bien utiles
Bon partage
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
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: Tout sélectionner
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: Tout sélectionner
echo pagination($_GET['page'], ceil($count/$limit), '/mon_url/{id}.html', 3);
Pour tester :
- Code: Tout sélectionner
echo pagination(10, 50, '/mon_url/{id}.html', 3);
Je ferais un petit sommaire dans ce premier post si les contributions sont nombreuses
Bon partage
Dernière édition par mowmow le Jeu Aoû 31, 2006 12:15, édité 2 fois.
Perso quand j'ai besoin d'un truc assez générique, je cherche ici :
http://pear.php.net
http://www.phpclasses.org
http://pear.php.net
http://www.phpclasses.org
-

La Chaise sauvage - WRInaute passionné

- Messages: 690
- Inscription: Lun Avr 11, 2005 10:37
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.. ^^
avec la ptite css qui va bien c'est encore mieux (mais pas obligatoire)
à 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 ^^
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: Tout sélectionner
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: Tout sélectionner
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 ^^
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)
exemple d'appel
- Code: Tout sélectionner
/**
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: Tout sélectionner
$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";
- Code: Tout sélectionner
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: Tout sélectionner
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...
- magic corp.
- WRInaute impliqué

- Messages: 425
- Inscription: Jeu Juin 17, 2004 9:56
Fonction de mise en forme de texte pour utilisation dans une URL (Par exemple pour de l'URL Rewriting)
- Code: Tout sélectionner
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 Mer Aoû 30, 2006 23:15, édité 1 fois.
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: Tout sélectionner
<?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+
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/
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/
50 messages • Page 1 sur 4 • 1, 2, 3, 4
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 :
- Alerte Google Dance
- Participez au projet 3x3 !
- Rumeurs autour de Google Tunes
- Tout savoir sur le nouveau Yahoo!
- La plateforme de blogs TextCube rachetée par Google
- La Google Deskbar API
- Google Music Trends
- Annonces illustrées Google Adsense
- Des bons outils pour les spécialistes des Web Analytics
- Découpage du forum webmaster en 2 forums
- Scripts php
- Fusionner 2 scripts php .
- Planification de scripts PHP ?
- site de scripts php anglophone
- Recherche Scripts php de commentaire !
- Un site de scripts php, votre avis ?
- Les meilleures sources de scripts php
- recherche de scripts php Petites annonces
- Liens à travers scripts php et pagerank...
- Questions concernant des scripts php
- Recherche scripts php pour site d'humour
- Scripts Php dans les templates de phpBB
- Les scripts à jéjé: Partage de la mémoire en php
- Morceaux de phrases répétés: autorisé ou pas?
- participez à un projet open source
Consultez la description détaillée des produits ou services de Google suivants : Google Music Trends, Google Code
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités








le forum