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 Suivante | |
| Auteur | Message |
|---|---|
| 1 visiteur sur ce sujet (1 anonyme) | |
| Page : 1 2 Suivante | |
Makkhdyn
|
# Posté le 18/04/2006 à 19:05:26 |
Beuhhhh![]() Groupe : Membres |
Voila pour mettre tout ça au clair je vais poster ici toutes les fonctions propres, optimisées, disons validées par les zéros qui sortiront de ce topic:
Vos Fonctions ou astuces
Zcode pour chaque réponse. Code : Zcode <gras>Auteur:</gras>
<gras>Type:</gras> <gras>But:</gras> <gras>Code:</gras> <code type="php"><?php ?></ code> <gras>Exemple:</gras> <code type="php"><?php ?></ code> <gras>Rendu:</gras> <citation></citation> Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 18/04/2006 à 19:15:26 |
Beuhhhh![]() Groupe : Membres |
Auteur: Arnaud
Type: Fonction But: Obtenir un extrait de texte Code: 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; } ?> Exemple: Code : PHP <?php
$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 />'; ?> Rendu: Citation 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. Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 18/04/2006 à 19:20:23 |
Beuhhhh![]() Groupe : Membres |
|
Makkhdyn
|
# Posté le 18/04/2006 à 19:29:32 |
Beuhhhh![]() Groupe : Membres |
Auteur: Arnaud
Type: Astuce But: Colore régulièrement les lignes d'un tableau de couleurs differentes Code: Code : PHP <table>
<?php $couleurs = array('red', 'green', 'blue', 'cyan'); $nb = count($couleurs); $i = 0; while($i < 6){ echo '<tr style="background-color: '. $couleurs[ $i % $nb ] .'"><td>Texte de la collone A</td><td>Texte de la colonneB</td></tr>'; ++$i; } ?> </table> Rendu: Code : HTML <table>
<tr style="background-color: red"> <td>Texte de la collone A</td> <td>Texte de la colonneB</td> </tr> <tr style="background-color: green"> <td>Texte de la collone A</td> <td>Texte de la colonneB</td> </tr> <tr style="background-color: blue"> <td>Texte de la collone A</td> <td>Texte de la colonneB</td> </tr> <tr style="background-color: cyan"> <td>Texte de la collone A</td> <td>Texte de la colonneB</td> </tr> <tr style="background-color: red"> <td>Texte de la collone A</td> <td>Texte de la colonneB</td> </tr> <tr style="background-color: green"> <td>Texte de la collone A</td> <td>Texte de la colonneB</td> </tr> </table> Il y a d'autres moyens (plus efficaces) de faire ceci
Auteur: 6(sic)6 Code : PHP <?php
function color(){ static $count = 0; $num_args = func_num_args(); if ($num_args === 0) return; $args = func_get_args(); $color = $args[$count % $num_args]; ++$count; return $color; } ?> Exemple: Code : PHP <?php
$i = 0; while(++$i < 10){ echo '<span style="color: ' . color('blue','red','green') . '>' . $i . '</span><br />'; } ?> Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 18/04/2006 à 19:35:48 |
Beuhhhh![]() Groupe : Membres |
Auteur: Makkhdyn
Type: Astuce But: Pouvoir afficher simplement la source Code: Code : PHP Explication: Il suffit d'ajouter "?source" à l'url qui mène à cette page pour pouvoir voir la source. Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 18/04/2006 à 19:41:36 |
Beuhhhh![]() Groupe : Membres |
Auteur: Makkhdyn
Type: Fonction But: Prendre le temps pour effectuer des comparaisons (BenchMarks) Code: Code : PHP <?php
function getmicrotime(){ $mtime = explode(' ', microtime()); return ((float)$mtime[1]+(float)$mtime[0]); } ?> Exemple: Code : PHP <?php
$time = getmicrotime(); $i = 0; while(++$i < 100){ echo 'test'; } echo getmicrotime()-$time; ?> Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 18/04/2006 à 19:51:15 |
Beuhhhh![]() Groupe : Membres |
Auteur: Makkhdyn
Type: Fonction But: Gérer les erreurs avec un log et un die en cas de grosse erreur Code: 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); $log_error[]= $phrase . '<br />'; if($die) die('<pre>'.print_r($log_error).'</pre>'); } ?> Exemple: Code : PHP <?php
//Erreur en cas d'inclusion foireuse (fait suite à un die). error('Inclusion problématique', 'include "test.php"', true); //Erreur avec une requête mysql problématique. $query = 'Select * From Tableau Where ID='.$id.';'; $result = @mysql_query($query ); if(!$result OR $result===NULL) error('Erreur MySQL : ' . mysql_error(), $query); ?> Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 18/04/2006 à 20:06:15 |
Beuhhhh![]() Groupe : Membres |
Auteur: Makkhdyn
Type: Fonction But: Envoyer un mail sans utiliser la fonction mail Ce code utilise une fonction personnalisée. Celle-ci correspond au code de Log par Makkhdyn ( sk_log() )
Code: 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é'; } ?> Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 18/04/2006 à 20:11:14 |
Beuhhhh![]() Groupe : Membres |
Auteur: Eron Xeo
Type: Astuce But: Supprimer des caractères spéciaux Code: Code : PHP <?php
$variable= strtolower(str_replace(array('ä', 'ê', 'ë', 'ô', 'î', 'ï', 'ô', 'ö', 'û', 'ü', 'ÿ', '€', '#', '+', '*', ' ', "'", '"', '²', '&', 'é', '~', '"', '{', '(', '[', '|', 'è', '`', 'ç', '^', 'à', 'à', ')', '}', '=', '}', '^', '$', '£', '¤', 'ù', '%', '*', 'µ', ',', '?', ';', ':', '/', '!', '§', '>', '<'), '_', $variable)); ?> Exemple: Code : PHP <?php
$variable = '€uros-Dollar$'; ?> Rendu: Citation _uros-Dollar_
Il y a d'autres moyens (plus efficaces) de faire ceci
Auteur: 999888 Code : PHP Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 18/04/2006 à 20:37:56 |
Beuhhhh![]() Groupe : Membres |
Auteur: Quadehar
Type: Fonction But: Gérer les requêtes SQL et leurs erreurs. Code: Code : PHP <?php
function requete($variable = NULL){ static $nombre_de_requetes; if(!empty($variable)){ $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()); ++$nombre_de_requetes; return $result; exit; }else return $nombre_de_requetes; } ?> Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 18/04/2006 à 20:42:35 |
Beuhhhh![]() Groupe : Membres |
Auteur: winzou
Type: Fonction But: Faire la liste des pages à afficher Code: 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; } ?> Exemple: Code : PHP Rendu: Citation array(1,2,3,4,'...',45,46,47,48)
Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 18/04/2006 à 20:46:40 |
Beuhhhh![]() Groupe : Membres |
Auteur: A-spec59
Type: Fonction But: Ecrire l'heure-date au format Français Code: Code : PHP <?php
function ecrireheure($timestamp){ $heure=getdate($timestamp); echo $heure["mday"].'-'.$heure["mon"].'-'.$heure["year"].' à '.$heure["hours"].'h'.$heure["minutes"].'min'; } ?> Rendu: Citation 18-04-06 à 20h50min
Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 18/04/2006 à 20:50:53 |
Beuhhhh![]() Groupe : Membres |
Auteur: Arnaud
Type: Fonction But: Générer des images de vérification (anti-bots) Code: Code : PHP <?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); } ?> Ce code utilise une fonction personnalisée. Celle-ci correspond au code de Chaine aléatoire par Loetheri( password() )
Exemple: Code : PHP <?php
$chaine = chaineAleatoire(); image($chaine); ?> Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 18/04/2006 à 21:00:25 |
Beuhhhh![]() Groupe : Membres |
Auteur: Loetheri (modifiée par Makkhdyn)
Type: Fonction But: Générer un mot de passe aléatoire Code: Code : PHP <?php
function password($chrs = 8, $addchrs = '') { $letter = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'.$addchrs; $number = strlen($letter); $pwd = ''; $i=0; while ($i++ < $chrs) $pwd .= $letter[mt_rand(0,$number-1)]; return $pwd; } ?> Exemple: Code : PHP <?php
password(8, 'é&àç$^ù*;'); ?> Il y a d'autres moyens de faire ceci
Auteur: Bison Code : PHP <?php
function password($long=8){ $passe = ''; shuffle($tab=array_merge(range('a','z'), range('A','Z'), range('0','9'))); $tab_passe=array_rand($tab,$long); foreach($tab_passe as $val){ $passe.=$tab[$val]; } echo $passe; } ?> Auteur: Elentar Ce code sera composé seulement de caractères hexadécimaux (entre 0 et F)
Code : PHP Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 18/04/2006 à 21:46:53 |
Beuhhhh![]() Groupe : Membres |
Auteur: doOk (modifié par 6(sic)6)
Type: Fonction But: Calculer la moyenne de tous les arguments donnés Code: Code : PHP <?php
function moyenne(){ $somme = array_sum(func_get_args()); $total = func_num_args(); if ($total === 0) return FALSE; return ($somme / $total); } ?> Exemple: Code : PHP Rendu: Citation 5.375
Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 19/04/2006 à 23:21:40 |
Beuhhhh![]() Groupe : Membres |
Auteur: Talus
Type: Astuce But: Tester la syntaxe de la page sous windows Code: Code : Console php.exe -l c:\documents and settings\...\monscript.php
Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 19/04/2006 à 23:27:10 |
Beuhhhh![]() Groupe : Membres |
Auteur: Plein de monde mais c'est le code à thelittlegui
Type: Fonction But: Inverser les effets du nl2br Code: Code : PHP Exemple: Code : PHP <?php
$chaine="test<br />\ntest"; //Sous PHP >= 4.0.5 $chaine="test<br>\ntest"; //Sous PHP < 4.0.5 echo br2nl($chaine); ?> Rendu: Citation test
test Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 19/04/2006 à 23:30:51 |
Beuhhhh![]() Groupe : Membres |
Auteur: eLaps (Modifié par Makkhdyn)
Type: Astuce But: Detecter le navigateur du client Code: Code : PHP <?php
if(strpos($_SERVER["HTTP_USER_AGENT"], 'Firefox') !== false) $user_agent_name = 'Mozilla Firefox'; elseif(strpos($_SERVER["HTTP_USER_AGENT"], 'Opera') !== false) $user_agent_name = 'Opera'; elseif(strpos($_SERVER["HTTP_USER_AGENT"], 'Netscape') !== false) $user_agent_name = 'Netscape'; elseif(strpos($_SERVER["HTTP_USER_AGENT"], 'Konqueror') !== false) $user_agent_name = 'Konqueror'; elseif(strpos($_SERVER["HTTP_USER_AGENT"], 'MSIE') !== false) $user_agent_name = 'Internet Explorer / Avant Browser'; else $user_agent_name = '(navigateur inconnu)'; ?> Utilisation: Code : PHP Il y a d'autres moyens de faire ceci
Auteur: thelittlegui Type: Fonction Code: Code : PHP <?php
function navigateur($agent=NULL) { $navs = array( 'msie' => 'Internet Explorer', 'firefox' => 'Mozilla Firefox', 'opera' => 'Opera', 'safari' => 'Safari', 'netscape' => 'Netscape Navigator', 'konqueror' => 'Konqueror' ); $inconnu = '(navigateur inconnu)'; if (!isset($agent)) $agent = $_SERVER['HTTP_USER_AGENT']; $agent = strtolower($agent); foreach ($navs as $key => $value) if (strpos($agent, $key) !== false) return $value; return $inconnu; } ?> Utilisation: Code : PHP <?php
echo navigateur(),"\r\n", navigateur($_SERVER['HTTP_USER_AGENT']),"\r\n", navigateur('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)'),"\r\n", navigateur('babediboudoubidouDOU'); ?> Rendu: Citation Mozilla Firefox
Mozilla Firefox Internet Explorer (navigateur inconnu) Rendu sous Mozilla Firefox
Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 21/04/2006 à 10:33:41 |
Beuhhhh![]() Groupe : Membres |
Auteur: docteur.night
Type: Astuce But: Rendre valide les liens avec les sessid Code: Code : PHP function correct_phpsessid($content)
{ return str_replace('&PHPSESSID=', '&PHPSESSID=', $content); } ob_start('correct_phpsessid'); Il y a d'autres moyens (plus efficaces) de faire ceci
Auteur: thelittlegui Code : PHP Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 21/04/2006 à 10:40:24 |
Beuhhhh![]() Groupe : Membres |
Auteur: docteur.night
Type: Fonction But: Remplacer le str_ireplace avec PHP < 5 Code: Code : PHP if ( !function_exists('str_ireplace') )
{ function str_ireplace($old, $new, $str) { if ( is_array($old) ) { foreach ( array_keys($old) as $key ) { $old[$key] = '`' . preg_quote($old[$key], '`') . '`i'; } } else { $old = '`' . preg_quote($old, '`') . '`i'; } return preg_replace($old, $new, $str); } } C'est exactement cette fonction-ci mais sous PHP < 5
Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 21/04/2006 à 10:46:36 |
Beuhhhh![]() Groupe : Membres |
Auteur: docteur.night
Type: Fonction But: Utiliser un addslashes sauf sur les doubles quotes ( " ) Code: Code : PHP // remplace "'" par "\'" et "\" par "\\" pour utiliser des chaines sous la forme 'voici ma chaine : \'ma chaine\''
function quotes($text) { return str_replace(array('\\', '\'', "\0"), array('\\\\', '\\\'', '\\0'), $text); } C'est exactement cette fonction-ci mais sans ajouter des slashes aux doubles quotes
Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 21/04/2006 à 10:50:57 |
Beuhhhh![]() Groupe : Membres |
Auteur: winzou (corrigée par K-jasi)
Type: Fonction But: Equivalent du in_array() mais sur un tableau multidimentionnel Code: Code : PHP <?php
function inarray($value, $array){ foreach($array as $v) { if(is_array($v) && inarray($value,$v)) return true; elseif ($v == $value) return true; } return false; } ?> Exemple: Code : PHP Rendu: Citation True
Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 22/04/2006 à 19:57:05 |
Beuhhhh![]() Groupe : Membres |
Auteur: Bison
Type: Fonction But: Savoir si l'année testée est bissextile Code: Code : PHP Exemple: Code : PHP Rendu: Citation 2000 : bool(true)
2001 : bool(false) 2002 : bool(false) 2003 : bool(false) 2004 : bool(true) 2005 : bool(false) Il y a d'autres moyens de faire ceci
Auteur: thelittlegui (modifiée par Makkhdyn) Code: Code : PHP <?php
function bissextile($annee){ return (!($annee%4) && $annee%100 || !($annee%400)); } ?> Auteur: ManiaGames Code: Code : PHP Ceci n'est pas une signature |
Makkhdyn
|
# Posté le 22/04/2006 à 20:00:22 |
Beuhhhh![]() Groupe : Membres |
|
