TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : 1 2 3 4 ... 82 83 84 85 Suivante | |
| Auteur | Message |
|---|---|
| 1 visiteur sur ce sujet (1 anonyme) | |
| Page : 1 2 3 4 ... 82 83 84 85 Suivante | |
nax
|
# Posté le 02/02/2006 19:32:19 |
![]() Groupe : Membres |
Edit : La liste des fonctions et astuces qui sont sorties de ce sujet est disponible ici :
http://www.siteduzero.com/forum-83-33940-p1-vos-fonctions-ou-astuces---liste.html Bonjour, je propose ce topic pour vous permettre de poster ici vos petites astuces en PHP ainsi que quelques petites fonctions qui peuvent servirent à beaucoup de monde. Alors je me lance : FonctionsFonction pour obtenir un extrait de texte :Code : PHP <?php function extrait($string,$start = 20,$end = 15,$sep = ' [...]') { $extrait = substr($string,0,$start); $extrait = substr($string,0,strrpos($extrait,' ')).$sep; $extrait2 = strstr(substr($string, -$end,$end),' '); return $extrait.' '.$extrait2; } ?> Code : PHP <?php // Exemple : $texte = ' Pellentesque habitant morbi tristique senectus. Ut mattis risus ac erat. Nam volutpat, nisl vitae venenatis mollis, ante erat tincidunt purus, nec ornare felis tellus sed purus. Phasellus orci. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur sapien pede, malesuada ac, ultricies in, dignissim eget, mauris. Nullam varius diam ac ligula. Morbi mattis posuere odio.'; echo extrait($texte); echo '<br />'; echo extrait($texte,0,20); echo '<br />'; echo extrait($texte,30,0,''); echo '<br />'; echo extrait($texte,20,20,'--'); echo '<br />'; echo extrait($texte,100,100); echo '<br />'; ?> Citation : Rendu : Pellentesque [...] posuere odio. [...] posuere odio. Pellentesque habitant morbi Pellentesque-- posuere odio. Pellentesque habitant morbi tristique senectus. Ut mattis risus ac erat. Nam volutpat, nisl [...] ultricies in, dignissim eget, mauris. Nullam varius diam ac ligula. Morbi mattis posuere odio. ----------------------------------------
Fonction extention, retourne l'extention de la chaine :Code : PHP <?php // Une fonction qui determine l'extention de n'importe-quel fichier / url... function extention($ext) { $ext = substr($ext,strrpos($ext,".")+1); return $ext; } echo extention("uploads/fichiers/fichier.arnaud.gz"); // Imprime gz ?> ----------------------------------------
Fonction pour compter le nombres d'occurences de $string dans un tableau indexe:Code : PHP // Ceci est une fonction que j'ai crée pour compter le nombre de $string dans le tableau. function count_str($string, $array) { if(is_array($array)) { $str = implode(' -',$array); $string .= '-'; return substr_count($str, $string); } else die('Secound <strong>ARGUMENT</strong> is not array'); } // On transmet à la fonction une chaine et un tableau. ----------------------------------------
Fonction qui colore une ligne d'un tableau d'un couleur différente ( connue )Code : PHP <table> <?php $couleurs = array('red', 'green', 'blue', 'cyan'); $nb = count($couleurs); $i = 0; while($i < 20 ) { echo '<tr style="background-color: '. $couleurs[ $i % $nb ] .'"><td>Texte de la collone A</td><td>Texte de la colonneB</td></tr>'; $i++; } ?> </table> Astuces
|
Makkhdyn
|
# Posté le 02/02/2006 20:01:38 |
Beuhhhh![]() ![]() |
Une astuce simple pour afficher vos sources à placer en début de page
Code : PHP Une fonction permettant de prendre le temps pour faire des bench Code : PHP <?php
function getmicrotime(){ $mtime = explode(' ', microtime()); return ((float)$mtime[1]+(float)$mtime[0]); } ?> Envoyer des mails par sockets (code fait il y a longtemps) Code : PHP <?php
//Options du mail $mail['serveur']="mail.vt-net.org";//serveur pour l'envoi des mails $mail['sujet']="Newletter";//sujet par defaut du mail $mail['nom']=""; //nom de l'expéditeur (si vous le laissez blanc se sera le nom qui est sur l'adresse email qui serat utilisée) $mail['adresse']="vous@hebergeur.com";// Adresse email de l'expéditeur function sk_mail($nom_exp, $mail_exp, $nom_dest, $mail_dest, $subject, $message){ // permission d'utilisation des options global $mail; // réglages des noms, du sujet et du serveur if ($nom_exp == null) list($nom_exp, $azer) = explode('@', $mail_exp); if ($nom_dest == null) list($nom_dest, $azer) = explode('@', $mail_dest); if ($subject == null) $subject = $mail['sujet']; $fp = fsockopen($mail['serveur'], '25', $errno, $errmsg); fputs($fp, "HELO " . $mail['serveur'] . "\n"); fputs($fp, "MAIL FROM:<$mail_exp>\n"); fputs($fp, "RCPT TO:<$mail_dest>\n"); fputs($fp, "DATA\nFROM: $nom_exp <$mail_exp>\nTO: $nom_dest <$mail_dest>\n"); fputs($fp, "SUBJECT:$subject\n"); fputs($fp, "CONTENT-TYPE: TEXT/HTML;\n"); fputs($fp, "\n$message"); fputs($fp, "\n.\n"); fputs($fp, "QUIT\n"); while ($new = fgets($fp, 1024)) { @$resultat .= str_replace(chr(10), '<br>', $new); } fclose($fp); if (strpos($resultat, '501') > -1) { sk_log("L'adresse $mail_exp a été refusée par le serveur.(erreur 501)"); return 'ERREUR : Adresse expéditeur refusée par le serveur...<br>'; } elseif (strpos($resultat, '503') > -1) { sk_log("L'adresse $mail_dest a été refusée par le serveur.(erreur 503)"); return 'ERREUR : Adresse destinataire refusée par le serveur...<br>'; } elseif (strpos($resultat, '550') > -1 OR strpos($resultat, '500') > -1) { sk_log("Le message de $mail_exp à $mail_dest a été refusée par le serveur.(erreur 500 ou 550)"); return 'Erreur lors de l\'envoi de l\'Email<br>'; } else return 'Email envoyé'; } ?> Fonction permettant les logs Code : PHP <?php
function error($phrase,$req = NULL, $die=false){ $fichier = fopen('.htlog', 'a'); $texte = date('\L\e d/m/Y à (H:i:s)').' : '.$phrase."\r\n"; $texte .= "\t\t\t ".$req."\r\n"; fwrite($fichier, $texte); fclose($fichier); $this->log_error[]= $phrase . '<br />'; if($die) die('<pre>'.print_r($this->log_error).'</pre>'); } ?> Ceci n'est pas une signature |
Eron Xeo
|
# Posté le 02/02/2006 20:05:57 |
![]() Groupe : Membres |
Petite astuce qui vous permet de remplacer tous les caractères spéciaux d'une chaîne par un underscore (notamment utile pour le traitement des noms de fichiers)
Code : PHP $nom_fichier = strtolower($_FILES['file']['name']);
$nom_fichier=str_replace(array('ä', 'ê', 'ë', 'ô', 'î', 'ï', 'ô', 'ö', 'û', 'ü', 'ÿ', '€', '#', '+', '*', ' ', '\'', '"', '²', '&', 'é', '~', '"', '{', '(', '[', '|', 'è', '`', 'ç', '^', 'à', 'à', ')', '}', '=', '}', '^', '$', '£', '¤', 'ù', '%', '*', 'µ', ',', '?', ';', ':', '/', '!', '§', '>', '<'), '_', $nom_fichier);
Edité
le 02/02/2006 20:54:50
par Eron Xeo
"Savoir, c'est vivre; maintenir l'ignorance, c'est presque un homicide." En même temps, quelle belle équipe ! ![]() |
Quadehar
|
# Posté le 02/02/2006 20:33:07 |
![]() Groupe : Membres |
Gestion des erreurs mysql et décompte du nombre de requêtesCode : PHP function requete($variable=1)
{ static $nombre_de_requetes; if($variable != 1) { $result = mysql_query($variable) or die("<strong><em>DEBUG MOD : Erreur n°".mysql_errno()."<br />Requête Invalide :</em></strong> $variable<br /><strong><em>Erreur :</em></strong> ".mysql_error()." à la ligne ".__LINE__); $nombre_de_requetes++; return $result; exit; } else return $nombre_de_requetes; } Cette fonction prend pour argument la requête sql et gère les erreurs. Appelée sans argument, la fonction retourne le nombre de requêtes réjà exécutées.
Edité
le 02/02/2006 20:36:06
par Quadehar
Wii Motion - Site sur la Wii proposant de nombreuses news, des dossiers, des previews, des tests et un forum. |
kamalito
|
# Posté le 02/02/2006 20:40:56 |
|
Groupe : Membres |
|
Nyro Xeo
|
# Posté le 02/02/2006 20:41:34 |
|
Groupe : Membres |
|
winzou
|
# Posté le 02/02/2006 22:03:59 |
lala![]() Groupe : Membres |
Fonction sdzv3 qui retourne un array avec les pages à afficher (ex : array(1,2,3,4,'...',45,46,47,48))
$page est la page courante $nb_page le nombre de pages totales $nb le nombre de page à retourner à droite et à gauche (uhm, $nb = 4 dans mon exemple juste au dessus) Code : PHP <?php
function get_list_page($page, $nb_page, $nb = 4) { $list_page = array(); for ($i=1;$i <= $nb_page;$i++) { if (($i < $nb) OR ($i > $nb_page - $nb) OR (($i < $page + $nb) AND ($i > $page -$nb))) $list_page[] = $i; else { if ($i >= $nb AND $i <= $page - $nb) $i = $page - $nb; elseif ($i >= $page + $nb AND $i <= $nb_page - $nb) $i = $nb_page - $nb; $list_page[] = '...'; } } return $list_page; }
Edité
le 02/02/2006 22:04:48
par winzou
c c |
A-spec59
|
# Posté le 03/02/2006 21:38:37 |
Réfléchissez !![]() Groupe : Membres |
Fonction pour écrire l'heureCode : PHP function ecrireheure($timestamp)
{$heure=getdate($timestamp); echo $heure["mday"].'-'.$heure["mon"].'-'.$heure["year"].' à '.$heure["hours"].'h'.$heure["minutes"].'min'; } A modifier selon l'affichage, nécessite un timestamp
Fonction d'authentification "simple"Code : PHP function authentification($pseudo, $MDP)
{if(!empty($pseudo) && !empty($MDP)) {$temp=mysql_query("Select * from membre where pseudo='$pseudo' and MDP='$MDP'"); while($resultat=mysql_fetch_array($temp)) {if ($pseudo==$resultat[pseudo] && $MDP==$resultat[MDP]) {$_SESSION[pseudo]=$pseudo ; $_SESSION[autho]="ok" ; global $authentification ; $authentification="ok" ;} else {echo "Vous n'êtes pas inscrits ou votre pseudo et votre mot de passe ne sont pas corrects.<br/>" ;}}} elseif($_SESSION[autho]=="ok") {global $authentification ; $authentification="ok" ;} else {if(empty($pseudo) && empty($MDP)) {echo "Vous n'avez pas rempli les champs pseudo et mot de passe.<br/>" ;} elseif(empty($pseudo)) {echo "Vous n'avez pas spécifié de pseudo.<br/>" ; } elseif(empty($MDP)) {echo "Vous n'avez pas spécifié de mot de passe.<br/>" ; } } } Nécessite une table membre avec au moins les colonnes pseudo et MDP. Renvoit la variable $authentification qu'il suffit de tester par la suite
"Rien ne s'est dit si ce n'est des mots." Ségolène Royal Je cherche des petit trucs à faire contre petite rémunération (traduction, codage de script, graphisme, ... ) Plus de détails => me contacter What I can do Codeurs, passez au design Zug (design distant) pour enfin avoir toute la largeur de votre écran utilisée (plus pratique pour l'affichage de codes, les retours à la ligne sont moins fréquent du fait de la plus grande largeur disponible). |
Shepard
|
# Posté le 04/02/2006 08:19:36 |
SQL Beginner ...![]() Groupe : Membres |
Citation : winzou
Fonction sdzv3 qui retourne un array avec les pages à afficher (ex : array(1,2,3,4,'...',45,46,47,48))
$page est la page courante $nb_page le nombre de pages totales $nb le nombre de page à retourner à droite et à gauche (uhm, $nb = 4 dans mon exemple juste au dessus) Code : PHP <?php function get_list_page($page, $nb_page, $nb = 4) { $list_page = array(); for ($i=1;$i <= $nb_page;$i++) { if (($i < $nb) OR ($i > $nb_page - $nb) OR (($i < $page + $nb) AND ($i > $page -$nb))) $list_page[] = $i; else { if ($i >= $nb AND $i <= $page - $nb) $i = $page - $nb; elseif ($i >= $page + $nb AND $i <= $nb_page - $nb) $i = $nb_page - $nb; $list_page[] = '...'; } } return $list_page; } Ce qui me permet de voir que si on met une page qui n'existe pas encore, on a une belle erreur
Moi je fais toujours la vérif après: S'il y a 150 pages et que quelqu'un essaie d'afficher la 246, j'affiche quand même la 150
PS: Je déteste afficher des messages d'erreur à mes visiteurs quand ce n'est pas nécessaire: c'est une perte de temps pour eux, et pour mon serveur
Sorry si ma signature a gêné, j'avais pas vu le sujet sur DG ... :s |
D@nny
|
# Posté le 04/02/2006 10:56:45 |
![]() Groupe : Membres |
Salut
Fonction qui met une majuscule a un motCode : PHP function majusc($mot)
{ $mot_majuscule = strtoupper($mot);//ABCDE $new_chaine = chunk_split($mot_majuscule, 1, " ");//A B C D E $array = explode(" ", $new_chaine); $nbr = 1; While(isset($array[$nbr])) { $array[$nbr] = strtolower($array[$nbr]); $nbr++;// 6 a la fin } $nbr_lettres = $nbr - 1; $new_nbr =0; While($new_nbr < $nbr_lettres) { if ($new_nbr == 0){ $mot_nouveau = $array[0]; } else { $mot_nouveau .= $array[$new_nbr]; } $new_nbr++; } return $mot_nouveau; } Fonction qui recupere la premier lettre d'un motCode : PHP function prmslettre($mot)
{ $new_chaine = chunk_split($mot, 1, " "); $lettre = explode(" ", $new_chaine); return $lettre[0]; } Je sais pas si elles vont servir a grand monde
la perfection s'exprime par 3 choses, le tiramisu, les crumbles, et le grain de riz |
Kiepah
|
# Posté le 04/02/2006 11:08:02 |
![]() Groupe : Membres |
Citation : D@nny
Salut
Fonction qui met une majuscule a un motCode : PHP function majusc($mot) { $mot_majuscule = strtoupper($mot);//ABCDE $new_chaine = chunk_split($mot_majuscule, 1, " ");//A B C D E $array = explode(" ", $new_chaine); $nbr = 1; While(isset($array[$nbr])) { $array[$nbr] = strtolower($array[$nbr]); $nbr++;// 6 a la fin } $nbr_lettres = $nbr - 1; $new_nbr =0; While($new_nbr < $nbr_lettres) { if ($new_nbr == 0){ $mot_nouveau = $array[0]; } else { $mot_nouveau .= $array[$new_nbr]; } $new_nbr++; } return $mot_nouveau; } Euh... ucfirst(), non ? C cay cool, Caml cay cool |
guiz
|
# Posté le 04/02/2006 12:22:34 |
![]() Groupe : Membres |
Citation : D@nny
Fonction qui recupere la premier lettre d'un motCode : PHP function prmslettre($mot)
{ $new_chaine = chunk_split($mot, 1, " "); $lettre = explode(" ", $new_chaine); return $lettre[0]; } Je sais pas si elles vont servir a grand monde Je pense qu'il y a plus simple : $mot[0], ca suffit pas? |
999888
|
# Posté le 04/02/2006 14:46:24 |
Up the Irons!![]() Groupe : Membres |
Citation : Eron Xeo
Petite astuce qui vous permet de remplacer tous les caractères spéciaux d'une chaîne par un underscore (notamment utile pour le traitement des noms de fichiers)
Code : PHP $nom_fichier = strtolower($_FILES['file']['name']); $nom_fichier=str_replace(array('ä', 'ê', 'ë', 'ô', 'î', 'ï', 'ô', 'ö', 'û', 'ü', 'ÿ', '€', '#', '+', '*', ' ', '\'', '"', '²', '&', 'é', '~', '"', '{', '(', '[', '|', 'è', '`', 'ç', '^', 'à', 'à', ')', '}', '=', '}', '^', '$', '£', '¤', 'ù', '%', '*', 'µ', ',', '?', ';', ':', '/', '!', '§', '>', '<'), '_', $nom_fichier); Mouais, vraiment peu utile, moi je fais ã, õ, ▓ ou n'importe quoi d'autre, donc franchement, ça sert un peu à rien.
Pour une fois, dans ce cas là, les regex sont préférables je trouve.
|
nax
|
# Posté le 04/02/2006 15:01:32 |
![]() Groupe : Membres |
Une fonction pour des chaines aléatoiresGenere aussi des chaines prononcables : Code : PHP function chaineAleatoire($type = "alphanumerique", $nombre = 6) { $chaine = ''; switch($type) { case "alphabetique": $caracteres = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); break; case "alphanumerique": $caracteres = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z', '1','2','3','4','5','6','7','8','9','0'); break; case "numerique": $caracteres = array('1','2','3','4','5','6','7','8','9','0'); break; case "prononcable": $voyelles = array('a', 'e', 'i', 'o', 'u', 'ou', 'io','ou','ai'); $consonnes = array('b', 'c', 'd', 'g', 'h', 'j', 'k', 'l', 'm','n', 'p', 'r', 's', 't', 'v', 'w', 'tr', 'cr', 'fr', 'dr', 'pr', 'vr','ch', 'ph', 'sl', 'cl'); break; default: $caracteres = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'); break; } if($type != 'prononcable') { $nombreCle = count($caracteres) - 1; // On va choisir un caractere au hasard for($i = 0;$i < $nombre ;$i++) { $cle = mt_rand(0,$nombreCle); $chaine .= $caracteres[$cle]; } return $chaine; } else { $nombreVoyelle = count($voyelles) - 1; $nombreConsonne = count($consonnes) - 1; for($i = 0; $i < $nombre; $i++) { if($i % 2) // Une fois sur deux { $cle = mt_rand(0,$nombreVoyelle); $chaine .= $voyelles[$cle]; } else { $cle = mt_rand(0,$nombreConsonne); $chaine .= $consonnes[$cle]; } } $chaine = substr($chaine,0,$nombre); return $chaine; } } Genere des images de verification :A associer avec la fonction de chaine aléatoires : Code : PHP function image($chaine) { global $session_id; $largeur = (strlen($chaine) * 10); $hauteur = 20; $image = imagecreate($largeur,$hauteur); $blanc = imagecolorallocate($image, 255, 255, 255); $noir = imagecolorallocate($image, 0, 0, 0); $milieuHauteur = ($hauteur / 2) - 8; imagestring($image, 6, (strlen($chaine) / 2 ), $milieuHauteur, $chaine, $noir); ImageRectangle ($image, 1, 1, $largeur - 1, $hauteur - 1, $noir); ImageLine ($image, 2, $milieuHauteur + 8, $largeur - 2, $milieuHauteur + 8, $noir); imagepng($image); } On peut la lancer comme cela ( avec la fonction plus haut ) Code : PHP $chaine = chaineAleatoire(); image($chaine); |
bskand
|
# Posté le 04/02/2006 16:52:27 |
|
SiteDesZacros Groupe : Membres |
Voici quelque fonctions que j'utilise souvent :
Redirection toute simple : Code : PHP <?php function red($url, $time) { echo '<script type="text/javascript">window.setTimeout("location=(\''.$url.'\');",'.$time.')</script>'; } ?> Vérification de pseudo/mdp : Code : PHP <?php function verifconnec($pseudo, $mdp) { $requet = mysql_query("select pseudo from membres where pseudo='".$pseudo."' AND mdp='".$mdp."'"); $nb = mysql_numrows($requet); if($nb >= 1) { return 'ok'; } } ?> Include dynamique sécurisé contre l'include externe : Code : PHP <?php function include2($name) { if(file_exists('./'.$name)) { include('./'.$name); } else { echo 'Fichier '.$name.' inexistant.'; } } ?> "Scanner" un dossier : Code : PHP <?php function aff($var) { $var = $var.'/'; if($openvar = @opendir($var)) { while (false !== ($file = @readdir($openvar))) { if(!file_exists($var.$file.$filepreuve.'.txt')) { if(is_dir($var.$file)) { echo '<hr><br><br> - [doc] '.$var.$file.'<br>'; } if(strstr($file, '.'.$ext[$i])) { echo '<br> - [file] '.$var.$file; } } } } } aff('.'); ?> Pour le fan de rpg : (barre de vie avec dégradé) Code : PHP |
