Aller au menu - Aller au contenu
 Zozor

Vos fonctions ou astuces - Liste

Liste des fonctions et astuces des zéros en php

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1  2  Suivante
Auteur Message
1 visiteur sur ce sujet (1 Anonyme)
Page 1  2  Suivante
Hors ligne Makkhdyn # Posté le 18/04/2006 à 19:05:26
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 19:15:26
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 19:20:23
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

Auteur: Arnaud
Type: Fonction
But: Retourne l'extension d'un fichier
Code:
Code : PHP
<?php
    function extension($ext){
        $ext = substr($ext,strrpos($ext,'.'));
        return $ext;
    }
?>

Exemple:
Code : PHP
<?php
    echo extension('uploads/fichiers/fichier.arnaud.gz');
?>

Rendu:
Citation
.gz


Il y a d'autres moyens (plus efficaces) de faire ceci

Auteur: Nyro Xeo
Code : PHP
<?php
    function extension($filename){
        return strrchr($filename, '.');
    }
?>

Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 19:29:32
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 19:35:48
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

Auteur: Makkhdyn
Type: Astuce
But: Pouvoir afficher simplement la source
Code:
Code : PHP
<?php
    if(isset($_GET['source'])){
        highlight_file(__FILE__);
        exit;
    }
?>

Explication: Il suffit d'ajouter "?source" à l'url qui mène à cette page pour pouvoir voir la source.

Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 19:41:36
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 19:51:15
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 20:06:15
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 20:11:14
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
<?php
    $chaine = preg_replace('#([^a-z0-9])+#i', '_', $chaine);
?>

Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 20:37:56
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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&ecirc;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
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 20:42:35
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
<?php
    $list = get_list_page(2, 48);
    print_r($list);
?>

Rendu:
Citation
array(1,2,3,4,'...',45,46,47,48)

Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 20:46:40
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 20:50:53
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 21:00:25
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
<?php
    function genpwd($length = 8){
        return substr(md5(uniqid(mt_rand(), true)), 0, $length);
    }
?>

Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 18/04/2006 à 21:46:53
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
<?php
    echo moyenne(7,9,5,3,4,6,7,5);
?>

Rendu:
Citation
5.375

Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 19/04/2006 à 23:21:40
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
 
Hors ligne Makkhdyn # Posté le 19/04/2006 à 23:27:10
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

Auteur: Plein de monde mais c'est le code à thelittlegui
Type: Fonction
But: Inverser les effets du nl2br
Code:
Code : PHP
<?php
    function br2nl($string){
        return str_replace(nl2br("\n"), "\n", $string);
    }
?>

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
 
Hors ligne Makkhdyn # Posté le 19/04/2006 à 23:30:51
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
<?php
    echo $user_agent_name;
?>

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
 
Hors ligne Makkhdyn # Posté le 21/04/2006 à 10:33:41
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

Auteur: docteur.night
Type: Astuce
But: Rendre valide les liens avec les sessid
Code:
Code : PHP
function correct_phpsessid($content)
{
        return str_replace('&PHPSESSID=', '&amp;PHPSESSID=', $content);
}

ob_start('correct_phpsessid');

Il y a d'autres moyens (plus efficaces) de faire ceci

Auteur: thelittlegui
Code : PHP
<?php
    ini_set('arg_separator.output', '&amp;');
?>

Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 21/04/2006 à 10:40:24
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
 
Hors ligne Makkhdyn # Posté le 21/04/2006 à 10:46:36
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
 
Hors ligne Makkhdyn # Posté le 21/04/2006 à 10:50:57
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

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
<?php
    $a = array(3, array(1,2));
    echo (inarray(2,$a))?'True':'False';
?>

Rendu:
Citation
True


Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 22/04/2006 à 19:57:05
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

Auteur: Bison
Type: Fonction
But: Savoir si l'année testée est bissextile
Code:
Code : PHP
<?php
    function bissextile($annee){
        return checkdate(2,29,$annee);
    }
?>

Exemple:
Code : PHP
<?php
    $i = 1999;
    while(++$i < 2006){
        echo $i.' : ';
        var_dump(bissextile($i));
    }
?>

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
<?php
    function bissextile($annee){
         return (cal_days_in_month(CAL_GREGORIAN, 2, $annee) == 28);
    }
?>

Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 22/04/2006 à 20:00:22
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

Auteur: Makkhdyn (idée de Talus)
Type: Fonction
But: Remplacer array_combine avec PHP < 5
Code:
Code : PHP
<?php
    if(!function_exists('array_combine')){
        function array_combine($keys, $values){
            $k_count = count($keys);
            $v_count = count($values);
            if(!(is_array($keys) && is_array($values)) || $k_count !== $v_count || $v_count === 0)
                return false;
            $array   = array();
            $values  = array_values($values);
            $keys    = array_values($keys);
            foreach($keys as $nb => $key)
                $array[$key] = $values[$nb];
            return $array;
        }
    }
?>

C'est exactement cette fonction-ci mais sous PHP < 5

Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 23/04/2006 à 11:43:53
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

Auteur: SquallX (modifiée par Makkhdyn)
Type: Fonction
But: Permettre une redirection facile
Code:
Code : PHP
<?php
    function redirection($url, $methode = 'js', $inner = true, $temps = 0){
        if($inner)
            $url = $racine.$url; //Racine représente la racine du site en cours.
        if( $methode === 'meta' )
            echo '<meta http-equiv="refresh" content="', $temps, '; url=', $url, '" />';
        elseif($methode === 'js')
            echo '<script language="javascript" type="text/javascript">', "\n",
                '<!--', "\n",
                'window.location.replace("', $url, '");', "\n",
                '-->', "\n",
                '</script>';
        else{
            header('Location : '.$url);
            exit;
        }
    }
?>?>

Exemple:
Code : PHP
<?php
    redirection('http://www.siteduzero.com', 'js', false);
    redirection('http://www.siteduzero.com', 'meta', false, 1);
    redirection('http://www.siteduzero.com', 'header', false);
?>

Rendu:
Citation
Redirige en javascript vers www.siteduzero.com
Redirige avec un meta vers www.siteduzero.com dans 1 sec
Redirige avec un header vers www.siteduzero.com

Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 23/04/2006 à 15:01:20
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

Auteur: docteur.night
Type: Fonction
But: Date simplifiée (et en français)
Code:
Code : PHP
function create_date($time = false, $mini = false)
{
        $time = ( $time !== false ) ? intval($time) : time();
        $date = getdate($time);

        $month = array(
                1 => 'Janvier',
                2 => 'Février',
                3 => 'Mars',
                4 => 'Avril',
                5 => 'Mai',
                6 => 'Juin',
                7 => 'Juillet',
                8 => 'Août',
                9 => 'Septembre',
                10 => 'Octobre',
                11 => 'Novembre',
                12 => 'Décembre'
                );

        $week_day = array(
                0 => 'Dimanche',
                1 => 'Lundi',
                2 => 'Mardi',
                3 => 'Mercredi',
                4 => 'Jeudi',
                5 => 'Vendredi',
                6 => 'Samedi'
                );

        if ( !$mini )
        {
                return $week_day[$date['wday']] . ' ' . $date['mday'] . ' ' . $month[$date['mon']] . ' ' . $date['year'] . ' à ' . (( $date['hours'] < 10 ) ? '0' . $date['hours'] : $date['hours']) . 'h' . (( $date['minutes'] < 10 ) ? '0' . $date['minutes'] : $date['minutes']);
        }
        else
        {
                return $date['mday'] . '/' . (( $date['mon'] < 10 ) ? '0' . $date['mon'] : $date['mon']) . '/' . substr($date['year'], 2, 2) . ', ' . (( $date['hours'] < 10 ) ? '0' . $date['hours'] : $date['hours']) . 'h' . (( $date['minutes'] < 10 ) ? '0' . $date['minutes'] : $date['minutes']);
        }
}

Exemple:
Code : PHP
echo create_date();
echo create_date($timestamp);
echo create_date(null, true);
echo create_date($timestamp, true);

Rendu:
Citation
affiche la date actuelle
affiche la date correspondant à la valeur de $timestamp
affiche la date courte actuelle
affiche la date courte correspondant à la valeur de $timestamp

Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 10/06/2006 à 19:01:08
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

Auteur: Bison
Type: Astuce
But: Enlever les retours à la lignes et les retours de chariots
Code:
Code : PHP
<?php
    $texte = str_replace(chr(10),'',$texte);
    $texte = str_replace(chr(13),'',$texte);
?>

Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 10/06/2006 à 19:05:22
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

Auteur: Makkhdyn
Type: Fonction
But: Retourne chemin relatif le plus court possible
Code:
Code : PHP
<?php
    function relative_path($source, $dest, $separator = DIRECTORY_SEPARATOR){
        $return = '';
        $same_path = true;
        $source_exp = explode($separator, $source);
        $dest_exp = explode($separator, $dest);
        foreach($source_exp as $nb => $file){
            if(isset($dest_exp[$nb]) && $file === $dest_exp[$nb] && $same_path)
                unset($dest_exp[$nb]);
            else{
                $same_path = false;
                $return .= '..' . $separator;
            }
        }
        if(empty($dest_exp)) return './';
        return $return . implode($separator, $dest_exp) . '/';
    }
?>

Exemple:
Code : PHP
<?php
    $path1 = dirname('C:\makkhdyn\tessta\bleu.php');
    $path2 = dirname('C:\maakkhdyn\tesstb\bleud.php');
    echo relativepath($path1, $path2);
?>

Rendu:
Citation
..\..\maakkhdyn\tesstb


Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 10/06/2006 à 19:09:41
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

Auteur: Flolfou
Type: Astuce
But: Tester la validité du domaine d'un mail
Code:
Code : PHP
<?php
    list($user, $domaine) = split('@', $email, 2);
    $mail_ok = checkdnsrr($domaine, 'MX');
?>

$mail_ok est un booléen qui indique l'existence du domaine.

Ceci n'est pas une signature
 
Hors ligne Makkhdyn # Posté le 10/06/2006 à 19:12:34
Beuhhhh
Avatar

études : SUPINFO Languedoc-Roussillon à Montpellier

Auteur: Arnaud
Type: Astuce
But: Appeler une fonction d'une classe dans un callback
Code:
Code : PHP
<?php
    class test{
        function next_year($matches){
            // comme d'habitude : $matches[0] représente la valeur totale
            // $matches[1] représente la première parenthèse capturante
            return $matches[1].($matches[2]+1);
        }

        function display($chaine){
            return preg_replace_callback('`(\d{2}/\d{2}/)(\d{4})`', array($this,'nextyear'), $chaine);
        }
    }
?>

C'est sur le array($this,'nextyear') que tout repose.

Ceci n'est pas une signature
 

Retour au forum "PHP" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx