Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Site Web > PHP > Vos Fonctions ou astuces > Lecture du sujet

Vos Fonctions ou astuces

Vous devez être inscrit pour pouvoir poster des messages

Page : Précédente  1  2  3  ...  5  6  7  8  9  10  11  ...  97  98  99  100  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  ...  5  6  7  8  9  10  11  ...  97  98  99  100  Suivante
Hors ligne Pl00b # Posté le 18/04/2006 à 15:04:45
Quote²
Avatar
Groupe : Membres
Reprise du dernier message de la page précédente :
Dans ce cas je me tait ^^
Amen :p

Tuto en cour de rédaction -> Optimiser vos programmes PHP
 
Hors ligne TrAsHeR # Posté le 18/04/2006 à 19:50:34
T'es beau toi :)
Avatar
Groupe : Membres
Citation : MaxDc

Fonction qui donne le jour d'une certaine date



Code : PHP
function jour($jour, $mois, $an, $lang='fr')
{
        $jour = (int)$jour;
        $mois = (int)$mois;
        $an = (int)$an;
       
        if ($an >= 2038) while ($an >= 2038) $an -= 28;
        elseif ($an <= 1970) while ($an <= 1970) $an += 28;

        $timestamp = mktime(0, 0, 0, $mois, $jour, $an);

        if ($lang == 'fr')
        {
                $numero_jour = date('w', $timestamp);
                $jours = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
                $jour = $jours[$numero_jour];
        }
        else
                $jour = date('l', $timestamp);

        return $jour;
}


Exemple:
echo jour(6, 4, 1835); //Résultat: Mardi
echo jour(6, 4, 1835, 'en'); //Résultat: Thursday


:D elle est bcp mieu que l'autre ahah

:p
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 19:52:08
Beuhhhh
Avatar
Groupe : Membres
Bon je sais pas si vous l'avez vu mais je vais vous faire une petite liste des beaux codes ;)

Ceci n'est pas une signature
 
Hors ligne anonyme # Posté le 18/04/2006 à 22:03:08
Groupe :
Bonne idée ;)
Il me reste plus qu'à faire une fonction qui soit dedans :D
Hors ligne 6(sic)6 # Posté le 18/04/2006 à 22:59:04
Mon macaréneur
Avatar
Groupe : Membres
Une autre fonction pour alterner les couleurs de fond des lignes de tableau :

Code : 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;
    }


Code : PHP
<?php
echo color('blue','red','green'); // alterne entre les 3 couleurs
//ou
echo color('#AF7512','#FF564D'); // alterne entre les 2 couleurs
?>
 
Hors ligne A-spec59 # Posté le 18/04/2006 à 23:29:08
Réfléchissez !
Avatar
Groupe : Membres

Fonction pour écrire l'heure


Quelques modifications (et oué plus on pratique, plus on apprend ^^ )
Code : PHP

<?php
function ecrireheure($timestamp)
{extract(getdate($timestamp));
 echo $mday.'-'.$mon.'-'.$year.' à '.$hours.'h'.$minutes.'min'; } ?>


Maintenant en version plus compliqué (pour les pointilleux et les chipoteurs ^^ )
Code : PHP

<?php
function ecrireheure($timestamp)
{extract(getdate($timestamp));
 if($mday<10)
  {$mday='0'.$mday ; }
 if($mon<10)
  {$mon='0'.$mon ; }
 if($hours<10)
  {$hours='0'.$hours ; }
 if($minutes<10)
  {$minutes='0'.$minutes ; }
 echo $mday.'-'.$mon.'-'.$year.' à '.$hours.'h'.$minutes.'min'; } ?>

P.S. : Vive le extract ^^

Green Searches, 1ère bêta. Pourquoi faire des recherches de façon écologique devrait-il se réduire à des recherches web. Green Searches vous permet aussi de faire des recherches d'images, de vidéos (à venir), de livres, dans les actualités ....
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
 
Hors ligne Nicol@s # Posté le 19/04/2006 à 09:50:41
Avatar
Groupe : Membres
Salut, j'ai fait trois petites fonction mais je sais pas si elles existes, les voila :

Fonction pour écrire le jour de la semaine en français à partir du timestamp


Code : PHP
function jour_francais($timestamp)
{
  $num_jour = date('w', $timestamp);
  $jours_francais = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
  $jour = $jours_francais[$num_jour]
  return $jour;
}


Fonction pour afficher le mois en français



Code : PHP
    function mois_francais($timestamp)// cette fonction permet de trouver le nom du mois de l'année en français à partir d'un timestamp.
{
  $num_mois = (int)date('m', $timestamp);
  $mois_francais = array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
  $mois = $mois_francais[$num_mois]
  return $mois;
}


Fonction pour afficher la date en français à partir d'un timestamp



ex : mardi 24 janvier 1972.

remarque : elle réutilise les fonctions juste au-dessus.

Code : PHP
    function date_francais($timestamp)
{
  return ''.jour_francais($timestamp).'' .date(' d ', $timestamp).'' .mois_francais($timestamp).'' .date(' Y', $timestamp) ;
}


Si vous voulez tester ces 3 fonctions allez ici
Édité le 19/04/2006 à 11:40:30 par Nicol@s

Tutoriel fini, validé et édité : Système de messagerie privée (MP). VALIDE !!!
Image utilisateur
 
Hors ligne 6(sic)6 # Posté le 19/04/2006 à 10:06:08
Mon macaréneur
Avatar
Groupe : Membres
Testez vos fonctions avant de les poster ! :colere:

Code : PHP
function date_francais($timestamp)
    {
    return jour_francais($timestamp).' '.date('d',$timestamp).' '.mois_francais($timestamp).' '.date('Y',$timestamp);
    }
 
Hors ligne Nicol@s # Posté le 19/04/2006 à 10:21:06
Avatar
Groupe : Membres
J'avais pas tester cette fonction. Je viens de corriger celui qui donne le mois. j'édit.
Sinon j'ai rajouter un lien pour pouvoir allez tester
Édité le 19/04/2006 à 10:56:20 par Nicol@s

Tutoriel fini, validé et édité : Système de messagerie privée (MP). VALIDE !!!
Image utilisateur
 
Hors ligne anonyme # Posté le 19/04/2006 à 11:18:44
Groupe :
Citation : :)
J'avais pas tester cette fonction. Je viens de corriger celui qui donne le mois. j'édit.
Sinon j'ai rajouter un lien pour pouvoir allez tester


Tu ferai mieux de "tester" ton orthographe aussi :colere: :)
Hors ligne Bison # Posté le 19/04/2006 à 11:36:22
Expreg.com
Avatar
Groupe : Membres
Quand je disais que les astuces ne tenaient pas vraiment la route...
Code : PHP

$num_mois = str_replace('01', '1', $num_mois);
$num_mois = str_replace('02', '2', $num_mois);
$num_mois = str_replace('03', '3', $num_mois);
$num_mois = str_replace('04', '4', $num_mois);
$num_mois = str_replace('05', '5', $num_mois);
$num_mois = str_replace('06', '6', $num_mois);
$num_mois = str_replace('07', '7', $num_mois);
$num_mois = str_replace('08', '8', $num_mois);
$num_mois = str_replace('09', '9', $num_mois);

C'est du grand n'importe quoi ça ! :-°

(int)date('m');

Une fonction de 20 lignes pour un truc qui peut se faire en 2 lignes de code.
Édité le 19/04/2006 à 11:37:40 par Bison

Par la rue "Plus tard", on arrive à la place "Jamais" !
Les regex, j'y connais que dalle... alors, j'essaie de comprendre là : Expreg.com
 
Hors ligne Nicol@s # Posté le 19/04/2006 à 11:37:27
Avatar
Groupe : Membres
OK je recommence ma formulation :
J'avais pas testé cette fonction. Je viens de corriger celle qui donne le mois. J'édit. Sinon j'ai rajouté un lien pour pouvoir allez tester.

Tutoriel fini, validé et édité : Système de messagerie privée (MP). VALIDE !!!
Image utilisateur
 
Hors ligne madyn # Posté le 19/04/2006 à 12:22:20
Avatar
Groupe : Membres
Citation : Makkhdyn
Bon je sais pas si vous l'avez vu mais je vais vous faire une petite liste des beaux codes ;)


Si tu mets l'auteur de la fonction ça serait symaps pour eux ;)

Bon je fouille vous dénicher quelques fonctions faites par moi ;)


Fonction de mini-templates



La fonction


Code : PHP
function tpl_spl($tpl, $array_inf, $ext='.tpl', $startvar='<[', $endvar=']>'){
 $file=fopen($tpl.$ext, 'r') or die('<p class="rouge">Erreur dans l\'ouverture du fichier template "'.$tpl.$ext.'"</p>');
 $contentfile=fread($file, filesize($tpl.$ext)) or die('
<p class="rouge">Erreur de lecture de fichier</p>');
 foreach($array_inf as $var => $val){
  $contentfile=str_replace($startvar.$var.$endvar, $val, $contentfile);
  }
 return($contentfile);
 }


Expliquations :


Cette fonction sert à remplacer un variable appelée sous cette forme : $startvar.$var.$endvar (par exemple <[mavar]>), $var étant une clef de $array_inf, par sa valeur dans $array_inf.

Options


  • Cette fonction a besoin au minimum de l'url du fichier à travailler
  • Mais elle a aussi besoin d'un tableau regroupant en clefs les nom des variables sans leurs "marqueurs" et en valeurs bah leurs valeurs ^^
  • Les "marqueurs" sont paramétrables via les variables $startvar et $endvar, ils sont définis par défaut à '<[' et ']>'.
  • L'extension du template est modifiable via la variable $ext


Exemple


Moi je l'utilise pour mes mails :

Le fichier "template" :
Code : HTML
<p>Bonjour <[pseudo]>,<br /><br /><br />
Ce mail vous est envoyé de Live in forest (<a href="http://www.liveinforest.org">www.liveinforest.org</a>) pour vous rappeller vos identifiants.<br /><br />
Les voici :<br />
 - Votre pseudo : <[pseudo]><br />
 - Votre mot de passe : <[mdp]><br />
 - Le nom de votre animal : <[nom_animal]><br /><br />
A bientôt !<br /><br />
Ce message est envoyé automatiquement de live in forest, tu n'est donc pas obligé d'y répondre !</p>


Et le code php :
Code : PHP
<?
$array_inf=array(
 'pseudo'=>$infos['pseudo'],
 'mdp'=>$infos['mdp'],
 'nom_animal'=>$infos['nom_animal']
 );
$message=tpl_spl('mails/pass_perdu', $array_inf);
?>



Fonction de requêtes MySQL



Je sais, il y'en a beaucoup déjà :p

La fonction


Code : PHP
function query($query='no', $line='no_line_specified', $file='no_file_specified'){
 static $nbr_req_page=0;
 if($query=='no'){
  query('UPDATE `stats` SET `sql_queries`=`sql_queries`+"'.$nbr_req_page.'"', __LINE__, __FILE__);
  return($nbr_req_page);
  }else{
  $nbr_req_page++;
  $result=mysql_query($query) or die('<p class="rouge">Erreur MySQL n°<b>'.mysql_errno().'</b> à la ligne <b>'.$line.'</b> du fichier <b>'.$file.'</b> :<br />'.mysql_error().'</p>');
  return($result);
  }
 }


Bon je crois pas avoir besoin de donner des explications ;)
Si elle est appelée sans argument elle enregistrera le nombre de requêtes faites (faut modifier cette requête ;) )


Fonction de recherche de where post


La fonction


Code : PHP
function where_form_post(){
 $referring_url=$_SERVER['HTTP_REFERER'];
 $valid_url='http://'.$_SERVER['HTTP_HOST'].'/';
 $valid_len=strlen($valid_url);
 if(substr($referring_url, 0, $valid_len) != $valid_url){
  die('Vous avez posté ce formulaire depuis un autre site que votre_site !');
  }
 }


Bon c'est pour vérifier si votre formulaire a bien été posté depuis votre site ;)


Fonction de code xhtml


La fonction


Code : PHP
function xhtml($code){
  die('Cette fonction n\'éxiste plus !');
 }


Oups, je suis apssé au templates c'est vrai ^^

Elle sert à arrêter le fonctionnement de votre page si vous voulez ;)

Tiens, en parlant de fonction de ce genre et de template j'en ai créé une hier qui arrête la page !

Fonction d'arret de page avec gestion de templates


La fonction


Code : PHP
function diemsg($msg, $block='start', $var='msg', $page='contenu'){
 global $tpl;
 $tpl->assign_block_vars($block, array($var=>$msg));
 $tpl->pparse($page);
 }


Elle en fonctionne qu'avec le générateur de templates phplib !


Options


  • Le message est stocké dans la variable $msg
  • le block d'apparition du message peut être changé via la variable $block
  • La nom de la variable sur le template peut être changée via la variable $var
  • $page contient le nom du ficheir traité (indiqué comme clef dans set_filenames(array()); )



J'espère avoir aidé des gens ;)

@bientôt !

m A d y n - :)

Secret (cliquez pour afficher)
999999999999999999999999999999999999999999999999999999999 : neuf cent quatre-vingt-dix-neuf decillions neuf cent quatre-vingt-dix-neuf nonilliards neuf cent quatre-vingt-dix-neuf nonillions neuf cent quatre-vingt-dix-neuf octilliards neuf cent quatre-vingt-dix-neuf octillions neuf cent quatre-vingt-dix-neuf sextiliards neuf cent quatre-vingt-dix-neuf sextillions neuf cent quatre-vingt-dix-neuf quintilliards neuf cent quatre-vingt-dix-neuf quintillions neuf cent quatre-vingt-dix-neuf quadrillards neuf cent quatre-vingt-dix-neuf quadrillons neuf cent quatre-vingt-dix-neuf trilliards neuf cent quatre-vingt-dix-neuf trillions neuf cent quatre-vingt-dix-neuf billiards neuf cent quatre-vingt-dix-neuf billions neuf cent quatre-vingt-dix-neuf milliards neuf cent quatre-vingt-dix-neuf millions neuf cent quatre-vingt-dix-neuf mille neuf cent quatre-vingt-dix-neuf
 
Hors ligne Bison # Posté le 19/04/2006 à 12:32:02
Expreg.com
Avatar
Groupe : Membres
Ce qui me laisse perplexe, c'est quand je vois le précipice qui sépare la structure de certains codes et les questions que posent parfois ceux qui disent les avoir codés.

M'enfin... le bénéfice du doute...

Par la rue "Plus tard", on arrive à la place "Jamais" !
Les regex, j'y connais que dalle... alors, j'essaie de comprendre là : Expreg.com
 
Hors ligne thelittlegui # Posté le 19/04/2006 à 13:02:05
Yupe.
Avatar
Groupe : Membres
Makkhdyn < oui c'est sympa :)

Quelques remarques cependant :

http://www.siteduzero.com/forum-83-33940-254737.html#r254737
Si la fonction d'Arnaud retourne "gz", celle dy Nyro Xeo retournera ".gz" (ce serait ptet bien de juste le préciser ^^)

http://www.siteduzero.com/forum-83-33940-254888.html#r254888
Cette "Astuce" d'Eron Xeo n'a pas exactement été "validée" par les Zér0s... au contraire même : http://www.siteduzero.com/forum-83-17384-136158.html#r136158 :-°

http://www.siteduzero.com/forum-83-33940-254975.html#r254975
Le "__LINE__" dans la fonction, c'était bien essayé ^^' mais malheureusement cela retournera toujours la même valeur : la ligne par rapport au début de la fonction, et non du code de la page :(
PS : il manque l'ancre "#r254872" à la fin du lien "Voir ce code" ;)


Bon voilà pour l'instant c'est tout ce que je vois qui (à mon sens) méritait d'être remarqué :)
Hors ligne Makkhdyn # Posté le 19/04/2006 à 13:33:28
Beuhhhh
Avatar
Groupe : Membres
madyn> ????? C'est la première ligne avant chaque nouveau code....

thelittlegui> Encore merci ;)
Sinon j'ai fait gaffe a l'astuce d'Eron Xeo seulement ce que dit 999888 est incomprehensible...

PS: ça sera long de tout mettre donc ne soyez pas préssés ;)

EDIT: Seules les fonctions simples et les astuces seront prises. Inutile de mettre toute votre classe de template etc...
Si les fonctions utilisent des fonctions qui ne font pas parties des astuces déja citées changez le code pour qu'il soit quand même utilisable.

Ceci n'est pas une signature
 
Hors ligne winzou # Posté le 19/04/2006 à 14:05:38
lala
Avatar
Groupe : Membres
Quelques petites fonctions dont je m'étais pas mal servi

La première pour récupérer le timestamp d'une date écrite en texte :
Code : PHP
<?php

// 15/09/04

/*
 * Cette fonction permet de récupérer le timestamp d'une date string d'après son format
 * Le format est celui de la fonction date (cf http://php.net/date)
 */

function str2time($date,$format)
{
$key_letter = array('a','A','B','c','d','D','g','G','h','H','i','I','j','l','m','M','n','O','r','s','S','t','U','w','W','Y','y','z','Z');

$esc_regex_before = array('?','+','.','*','\\');
$esc_regex_after  = array();

foreach($esc_regex_before as $data)
    $esc_regex_after[] = '\\'.$data;

$regex = '^'.str_replace($key_letter,'(.*?)',str_replace($esc_regex_before,$esc_regex_after,$format)).'$';

preg_match('`'.$regex.'`',$format,$index_output);
preg_match('`'.stripslashes(stripslashes($regex)).'`',$date,$value_output);

for($i=1;$i<count($value_output);$i++)
    $array_date[$index_output[$i]] = $value_output[$i];

$final_date['heure'] = 0;
$final_date['min']   = 0;
$final_date['sec']   = 0;
$final_date['mois']  = 0;
$final_date['jour']  = 0;
$final_date['annee'] = 0;
$final_date['dec']   = 0;


$array_mois      = array('Jan' => 1,'Feb' => 2,'Mar' => 3,'Apr' => 4,'May' => 5,'Jun' => 6,'Jul' => 7,'Aug' => 8,'Sep' => 9,'Oct' => 10,'Nov' => 11,'Dec' => 12);
$array_mois_long = array('January' => 1,'February' => 2,'March' => 3,'April' => 4,'May' => 5,'June' => 6,'July' => 7,'August' => 8,'September' => 9,'October' => 10,'November' => 11,'December' => 12);


foreach($array_date as $key => $data)
    {
    if(isset($format{strpos($format,$key)-1}) AND $format{strpos($format,$key)-1} == '\\')
        continue;
   
    switch($key)
    {
    case 'd':
        $final_date['jour'] = $data;
        break;
   
    case 'm':
    case 'j':
        $final_date['mois'] = $data;
        break;
   
    case 'Y':
    case 'y':
        $final_date['annee'] = $data;
        break;
   
    case 'a':
    case 'A':
        if($data == 'pm')
            $final_date['heure'] += 12;
        break;
   
    case 'g':
    case 'h':
    case 'G':
    case 'H':
        $final_date['heure'] = $data;
        break;
   
    case 'i':
        $final_date['min'] = $data;
        break;
   
    case 's':
        $final_date['sec'] = $data;
        break;
   
    case 'F':
        $final_date['mois'] = $array_mois_long[$data];
        break;
   
    case 'M':
        $final_date['mois'] = $array_mois[$data];
        break;
   
    case 'c':
        return str2time($data,'Y-m-dTH:i:s+00:00');
        break;
   
    case 'r':
        return str2time($data,'D, d M Y H:i:s +0000');
        break;
   
    case 'I':
        if($data == 0)
            $final_date['dec'] -= 3600;
        break;

    } // switch
    }

   
$time = mktime($final_date['heure'],$final_date['min'],$final_date['sec'],$final_date['mois'],$final_date['jour'],$final_date['annee']) + $final_date['dec'];

return $time;
}

// echo str2time('18/08/04 1:21:22 pm','d/m/Y h:i:s a');

?>


La deuxième pour faire un in_array sur tout un tableau (ne pas rechercher que dans la 1ere dimension quoi)
Code : PHP
<?php

// 21/08/04

/*
 * Cette fonction permet de faire un in_array() multidimensionnel
 */

function inarray($value,$array)
{
foreach($array as $v)
        {
        if(is_array($v))
                return inarray($value,$v);
        else
                return ($v == $value);
        }
return false;
}
?>


Et la troisième pour trier un tableau. Cette fonction existe peut-être en vrai :D Mais je m'étais amusé à la faire. Utile par exemple pour trier le résultat d'une requete SQL par exemple (quoique il existe le ORDER BY :-° ), ou pour n'importe quoi d'autre
Code : PHP
<?php

// 21/08/04

/*
 * Cette fonction permet de trier un tableau numérique selon un champ donné de sa 2e dimension
 * La gestion de croissant/decroissant est maintenant implenté (rapidement :p)
 * Ordre croissant par défaut
 */

function array_sort($array,$champ,$ordre = 'ASC')
        {
        $alpha = '0123456789AaàâäBbCcDdEeéèêëFfGgHhIiîìïJjKkLlMmNnOoôöPpQqRrSsTtUuûüVvWwXxYyZz ';

        $count = count($array);

        for($i=$count;$i>=0;$i--)
                {
                for($o=0;$o<$i-1;$o++)
                        {
                        $t1 = (int)$array[$o][$champ];
                        $t2 = (int)$array[$o+1][$champ];

                        if($t1 == $t2)
                                {
                                $t1 = (int)strpos($alpha,$array[$o][$champ]{0});
                                $t2 = (int)strpos($alpha,$array[$o+1][$champ]{0});

                                for($p=1;($t1 == $t2);$p++)
                                        {
                                        $t1set = isset($array[$o][$champ]{$p});
                                        $t2set = isset($array[$o+1][$champ]{$p});

                                        if(!$t1set XOR !$t2set)
                                                {
                                                $t1 = (int)$t1set;
                                                $t2 = (int)$t2set;
                                                }
                                        elseif($t1set AND $t2set)
                                                {
                                                $t1 = (int)strpos($alpha,$array[$o][$champ]{$p});
                                                $t2 = (int)strpos($alpha,$array[$o+1][$champ]{$p});
                                                }
                                        else
                                                break;
                                        }
                                }
                       
                        if($t1 > $t2)
                                list($array[$o+1],$array[$o]) = array($array[$o],$array[$o+1]);
                        }
                }
       
        if($ordre == 'DESC')
                return array_reverse($array);
        else
                return $array;
        }


/*
 * Exemple :
 *

$array = array(
        array(
                'c1' => '02 - toi',
                'c2' => 'aab'
        ),
        array(
                'c1' => '01 - moi',
                'c2' => 'aaab'
        ),
        array(
                'c1' => '03 - lui',
                'c2' => 'az'
        ),
        array(
                'c1' => '11 - euh...',
                'c2' => 'acc'
        )
);

 *
 * essayer array_sort($array,'c1');
 * et array_sort($array,'c2');
 *
 * Enjoy ;)
 *
 */

?>

cImage utilisateurc
 
Hors ligne Jukien # Posté le 19/04/2006 à 14:18:54
Avatar
Groupe : Membres
Hors ligne Bison # Posté le 19/04/2006 à 14:48:31
Expreg.com
Avatar
Groupe : Membres
no comment ! :-°

Par la rue "Plus tard", on arrive à la place "Jamais" !
Les regex, j'y connais que dalle... alors, j'essaie de comprendre là : Expreg.com
 
Hors ligne thelittlegui # Posté le 19/04/2006 à 15:08:06
Yupe.
Avatar
Groupe : Membres
Makkhdyn < (de rien) bon ben je vais réexpliquer alors :D
Dans l'array du code d'Eron Xeo, il n'y a ni 'ã' ni 'õ' (entre autres), donc si j'uploade un fichier nommé par exemple "pãbõ.jpg", ce code ne servira strictement à rien...
Et quand on pense à tous les caractères possibles dans un nom de fichier... comme l'a dit 999888, une regex serait bien plus adaptée (une fois n'est pas coutume :p)

Par exemple
Code : PHP
$var = preg_replace('`[^A-Za-z0-9._-]`', '_', $var);

(perso j'aurais laissé le tilde ~ dans les caractères autorisés mébon, on met ce qu'on veut ^^)


PS : t'as toujours pas rajouté l'ancre dans :p (oui, elle y est là ^^)
Hors ligne winzou # Posté le 19/04/2006 à 15:58:13
lala
Avatar
Groupe : Membres
Citation : Jukien
Citation : php.net
strtotime() essaye de lire une date au format anglais US dans la chaîne time

Je suis pas con à ce point quand même => ma fonction sait lire tous les formats, pour peu qu'on le lui donne ;)

cImage utilisateurc
 
Hors ligne Jukien # Posté le 19/04/2006 à 16:56:48
Avatar
Groupe : Membres
Je pense qu'il y a moyen de jouer avec les paramètres locaux. Si non, il vaut mieux transformer la chaine en anglais, pour ensuite la passer à strtotime ;)
 
Hors ligne Data-x # Posté le 19/04/2006 à 17:35:23
Groupe : Membres
Fonction a 2 bale pour essayer de recuperrer la veritable ip (derriere proxy).

Code : PHP
function ip()
{
     if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
     {
     $ip['0'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
     }
     elseif(isset($_SERVER['HTTP_CLIENT_IP']))
     {
     $ip['0'] = $_SERVER['HTTP_CLIENT_IP'];
     }
     else
     {
     $ip['0'] = FALSE;
     }
$ip['1'] = $_SERVER['REMOTE_ADDR'];
return $ip;
}
Édité le 19/04/2006 à 20:31:16 par Data-x
Hors ligne Gimmly # Posté le 19/04/2006 à 18:15:45
j'ai toujours tort
Avatar
Groupe : Membres
nicol@s tu connais strftime ?
non ?
ca se voit ^^
bon c'est pas comme si une fonction toute bête savait afficher la date en francais hein :-°
Hors ligne Elentar # Posté le 19/04/2006 à 18:16:00
Avatar
Groupe : Membres
Le return FALSE; ne sert à rien, $_SERVER['REMOTE_ADRR'] est toujours renseigné.
Par contre cette fonction est dangeureuse : on peut mettre n'importe quoi en HTTP_X_FORWARDED_FOR et on peut donc passer outre l'enregistrement de l'IP sans problème de cette manière.

On peut se servir de HTTP_X_FORWARDED_FOR, mais il ne toujours aussi enregistrer le REMOTE_ADDR.
Hors ligne Data-x # Posté le 19/04/2006 à 19:15:40
Groupe : Membres
Citation : Elentar
Le return FALSE; ne sert à rien, $_SERVER['REMOTE_ADRR'] est toujours renseigné.
Par contre cette fonction est dangeureuse : on peut mettre n'importe quoi en HTTP_X_FORWARDED_FOR et on peut donc passer outre l'enregistrement de l'IP sans problème de cette manière.

On peut se servir de HTTP_X_FORWARDED_FOR, mais il ne toujours aussi enregistrer le REMOTE_ADDR.


Ok merci pour les info, je vais plutot renvoyer un array alors. J'edite.

Donc maintenant $var[1] retournera toujour la REMOTE_ADDR et si $var['0'] !== FALSE alors il utilise un proxy.

Édité le 19/04/2006 à 19:25:19 par Data-x
Hors ligne madyn # Posté le 19/04/2006 à 19:51:11
Avatar
Groupe : Membres
Citation : Makkhdyn
madyn> ????? C'est la première ligne avant chaque nouveau code....


Tu veux parler du <?php ?

Je l'ai pas mis parce que la coloration syntaxtique du code marche sans et parce que c'est plus pratique pour ceux qui vont prendre les fonctions de les prendre ^^

Ensuite j'ai codé toutes les fonction (je me sens concerné par la remarque de Bison...)
Édité le 19/04/2006 à 20:02:16 par madyn

m A d y n - :)

Secret (cliquez pour afficher)
999999999999999999999999999999999999999999999999999999999 : neuf cent quatre-vingt-dix-neuf decillions neuf cent quatre-vingt-dix-neuf nonilliards neuf cent quatre-vingt-dix-neuf nonillions neuf cent quatre-vingt-dix-neuf octilliards neuf cent quatre-vingt-dix-neuf octillions neuf cent quatre-vingt-dix-neuf sextiliards neuf cent quatre-vingt-dix-neuf sextillions neuf cent quatre-vingt-dix-neuf quintilliards neuf cent quatre-vingt-dix-neuf quintillions neuf cent quatre-vingt-dix-neuf quadrillards neuf cent quatre-vingt-dix-neuf quadrillons neuf cent quatre-vingt-dix-neuf trilliards neuf cent quatre-vingt-dix-neuf trillions neuf cent quatre-vingt-dix-neuf billiards neuf cent quatre-vingt-dix-neuf billions neuf cent quatre-vingt-dix-neuf milliards neuf cent quatre-vingt-dix-neuf millions neuf cent quatre-vingt-dix-neuf mille neuf cent quatre-vingt-dix-neuf
 
Hors ligne Elentar # Posté le 19/04/2006 à 20:17:45
Avatar
Groupe : Membres
Juste un petit commentaire de quelques fonctions "officialisées" :
- ( http://www.siteduzero.com/forum-83-33940-254872.html#r254872 ) je doute qu'on puisse être si libre sur la question de la casse... ("CONTENT-TYPE: TEXT/HTML;" ?). Je me trompe peut-être, mais ça me parais assez illogique.
- ( http://www.siteduzero.com/forum-83-33940-254975.html#r254975 ) la gestion du compteur de requêtes n'est pas logique. et la gestion des erreurs devrait se faire lors de l'utilisation de la fonction, pas dans la même fonction que celle gêrant la requête.

- ( http://www.siteduzero.com/forum-83-33940-255058.html#r255058 )
Sinon :
Code : PHP
function genpwd($length = 12)
{
    return substr(md5(uniqid(mt_rand(), true)), 0, $length);
}

J'ai absoluement pas de matos pour tester n'étant pas chez moi, il est donc possible qu'une erreur se soit glissée ^^
Hors ligne Bison # Posté le 19/04/2006 à 20:19:51
Expreg.com
Avatar
Groupe : Membres
Citation : madyn
Ensuite j'ai codé toutes les fonction (je me sens concerné par la remarque de Bison...)

Faut pas ! :p
Même si le fossé est pourtant énorme entre une structure complexe et une question posée pour un parse error :p
Mais bon... ce n'est que mon sentiment, il ne compte pour personne et n'engage que moi.

Par la rue "Plus tard", on arrive à la place "Jamais" !
Les regex, j'y connais que dalle... alors, j'essaie de comprendre là : Expreg.com
 
Hors ligne madyn # Posté le 19/04/2006 à 22:07:06
Avatar
Groupe : Membres
Citation : Bison
Citation : madyn
Ensuite j'ai codé toutes les fonction (je me sens concerné par la remarque de Bison...)

Faut pas ! :p
Même si le fossé est pourtant énorme entre une structure complexe et une qu