Aller au contenu

e.MiLoU

Hubmaster
  • Compteur de contenus

    188
  • Inscrit(e) le

  • Dernière visite

Messages postés par e.MiLoU

  1. Hellow,

    Excusez-moi pour le titre 'petit nègre' mais j'ai essayer de le faire le plus explicite possible.

    Je cherche à trouver (...) le moyen d'obtenir (...) le chemin absolu d'un fichier en local pour mon .htaccess.

    Celui-ci me renvoit 'e:\sites\nom_du_site\haut.php' avec la méthode realpath, je l'insère donc dans mon .htaccess, mais ça ne fonctionne pas.

    Je suis sous Windows, et mon logiciel d'édition UltraEdit me permet d'enregistrer des fichiers sous le doux nom de .htaccess

    Voilà voilà, merci à ceux qui pourront m'aider.

  2. auto_preprend_file

    <{POST_SNAPBACK}>

    C'est exactement ce que je veux (enfin, je crois)...

    Pourrais-tu me donner un exemple d'utilisation, parce que je n'en trouve pas.

    Merci

    PS: J'utilise UltraEdit32

    Edit: Voilà, j'ai trouvé ici mais ça ne marche pas sur les serveurs mutualisés je crois...

    ReEdit: Ca marche sur les serveurs mutualisé au moyen d'un .htaccess

  3. Bonjour,

    Je voudrais savoir si il est possible d'insérer automatiquement du code... Par exemple, sur une page php vide, qu'il soit automatiquement insérer les lignes suivantes

    include 'haut.php';

    include 'bas.php';

    Merci d'avance.

  4. Ce que je ferai, c'est de regrouper toutes tes dates dans un tableau.

    Pour l'affichage du jour, tu fais un array_search de la date dans ton tableau fraîchement créé. Si il return true, tu affiche le lien urlé (tiens, un néologisme) si pas, tu n'affiche pas un lien urlé.

    Quel est ton niveau en PHP??

  5. Si par exemple la page à afficher pour le 12/02 est 12_02.php tu dois modifier ceci

     if(($dp <= $i)&&($j <= $nbjour))//si nous sommes apres le numero du premier jour et que nous n avons pas
    { //passé le 30 ou 31
    echo "<td>$j</td>"; //on affiche
    $j++;
    }

    par

     if(($dp <= $i)&&($j <= $nbjour))//si nous sommes apres le numero du premier jour et que nous n avons pas
    { //passé le 30 ou 31
    $contenu = "<a href=\"{$mois}_{$j}.php\">$j</a>";
    echo "<td>$contenu</td>"; //on affiche
    $j++;
    }

    Alala, ces gens qui veulent du code tout fait...

  6. Voilà

    La fonction


    <?php
    /*

    ######################################################
    # Calendrier PHP par nounou #
    # Source écrite avec PHP 4.2 #
    # Email : superbounou_AT_yahoo.fr #
    # Script utilisé dans la version 1.1 de SMartBlog #
    # Web : [url="http://superbounou.phpnet.org/smartblog/"]http://superbounou.phpnet.org/smartblog/[/url] #
    ######################################################

    */

    function calendrier($mois,$annee) //renvoi un calendrier
    {
    //variables
    $ts = mktime(1,1,1,$mois,1,$annee); //Recuperation du timestamp du numero du jour de base cad le numero du jour du premier jour du mois ouf !
    $tab = getdate($ts); //Recuperation du numero du jour de base, le numero du jour du premier jour du mois
    $j = 1 ; //premier jour
    $nbjour = date('t',$ts) ;//nombre de jour dans le mois
    $nom_mois = array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobtre','Novembre','Décembre');//Nom des moins in French
    //cette sequence corrige le numero du dimanche. PHP donne 0, dans notre cas 7 est préférable, donc..
    if($tab['wday'] == 0)
    {
    $dp = 7 ;
    }
    else
    {
    $dp = $tab['wday'] ;
    }
    //Affichage de l'entête du calendrier
    echo "<table width=\"\" border=\"1\"><tr><td>Lun</td><td>Mar</td><td>Mer</td><td>Jeu</td><td>Ven</td><td>Sam</td><td>Dim</td></tr>";
    //Affichage du calendrier
    for($i=1;$i<=42;$i++)
    {
    if($i % 7 == 1 ) //si il reste un, on commence forcement une nouvelle ligne
    {
    echo "<tr>";
    }

    if(($dp <= $i)&&($j <= $nbjour))//si nous sommes apres le numero du premier jour et que nous n avons pas
    { //passé le 30 ou 31
    echo "<td>$j</td>" ; //on affiche
    $j++;
    }
    else
    {
    echo "<td></td>"; //sinon case vide
    }

    if($i % 7 == 0 ) //si il ne reste rien, cad des multiples de 7, on se retrouve forcement en fin de ligne
    {
    echo "</tr>";
    }
    }
    echo "</table>"; //affichage de la fin du tableau

    //calcul des positions des mois
    if($mois == 12)
    {
    $prochain_mois = 1 ;
    $prochaine_annee = $annee + 1 ;
    $precedent_mois = $mois - 1 ;
    $precedente_annee = $annee ;
    }
    else if($mois == 1)
    {
    $prochain_mois = $mois + 1 ;
    $prochaine_annee = $annee ;
    $precedent_mois = 12 ;
    $precedente_annee = $annee - 1 ;
    }
    else
    {
    $prochain_mois = $mois + 1 ;
    $prochaine_annee = $annee ;
    $precedent_mois = $mois - 1 ;
    $precedente_annee = $annee ;
    }

    //barre de navigation
    printf("<a href=\"?mois=%s&an=%s\"><<</a> %s <a href=\"?mois=%s&an=%s\">>></a>",$precedent_mois,$precedente_annee,$nom_mois[$mois-1],$prochain_mois,$prochaine_annee);
    } //Fin fonction


    ?>

    Un exemple



    <title>[Calendrier] :: Par Nounou</title><center>
    <?
    /*

    ######################################################
    # Calendrier PHP par nounou #
    # Source écrite avec PHP 4.2 #
    # Email : superbounou_AT_yahoo.fr #
    # Script utilisé dans la version 1.1 de SMartBlog #
    # Web : [url="http://superbounou.phpnet.org/smartblog/"]http://superbounou.phpnet.org/smartblog/[/url] #
    ######################################################

    */

    include "calendar.php";

    if(!isset($_GET['mois'],$_GET['an']))
    {
    $ts = mktime();
    $tab = getdate($ts);
    $_GET['mois'] = $tab['mon'];
    $_GET['an'] = $tab['year'];
    }

    calendrier($_GET['mois'],$_GET['an']);
    ?></center>
    <br>
    <br>
    <br>
    Ce calendrier est intégré à Smartblog. Démo<a href="http://superbounou.phpnet.org/smartblog/demo/">
    ici </a>

    Source: http://www.comscripts.com/scripts/php.cale...n-php.1837.html

  7. Je sais pas si tu es du genre je préfère faire tout seul et évoluer un peu par moi-même ou je reçois le travail tout fait.

    Dans le pemier cas, je te donnes des indices

    - L'opérateur % donne le reste d'une division => pour savoir si il faut ajouter </tr> ou <tr>

    - Il faut utiliser les fonctions date() et mktime()

    - Va voir dans la fonction date() pour trouver suel est le premier jour du mois etc

    J'espère que tu comprendras, aussinon, je peux te donner un code toutt fait!!

    Bonne chance

  8. Quel genre d'évènement souhaites-tu lier à ton calendrier??

    L'ouverture d'une page qui n'a rien du tout avoir avec le jour, genre ma_belle_mere.php pour le jeudi 07 septembre ou la page photos/20050907.php??

    Pourquoi ne pas faire un calendrier en php??

  9. Hellow,

    On est sûr un gros coup dans le topic "Comparer 2 chaines de caractères", mais j'ai un ou deux ptits problèmes. Comment faire un regex telle qu'elle supprime les espaces qui sont contenu entre > et <. J'ai pensé à ça.

    $t_final = ereg_replace("/\>(\e*)\</", "><", $t_final);

    Mais n'étant pas une bête en regex... ça fonctionne pas.

  10. Bon, dans tous les cas, je propose ma nouvelle version.

    Elle ne prend toujours pas en compte les grandes partie de texte à modifier, dites moi ce que vous en pensez

    Page de test


    <?

    function EspacePonctu($str)
    {
    $recherche = array('#!#', '#,#', '#?#', '#\.#', '#;#');
    $remplacement = array(' !', ' ,', ' ?',' .', ';');
    $str = preg_replace ($recherche, $remplacement, $str);
    return $str;
    }

    function DeEspacePonctu($str)
    {
    $recherche = array('# !#', '# ,#', '# ?#', '# \.#', '#;#');
    $remplacement = array('!', ',', '?','.', ';');
    $str = preg_replace ($recherche, $remplacement, $str);
    return $str;
    }

    // Cette fonction permet d'extraire un élément d'indice $index dans un tableau $tab
    function ArrayExtract($tab, $index)
    {
    $u = 0;
    $end [0] = '';
    foreach($tab as $i => $val)
    {
    if ($i != $index) $end[$u++] = $val;
    }
    return $end;
    }

    /**************************************************************************\
    | Cette fonction sert à comparer deux chaines de caractères. |
    | Elle a été réalisée par MiLoU pour le topic d'url |
    | [url="http://www.webmaster-hub.com/index.php?showtopic=16115"]http://www.webmaster-hub.com/index.php?showtopic=16115[/url] |
    | sur le forum Webmaster-Hub |
    \**************************************************************************/

    // Paramètres
    // $t_init: text initial (!! sans htmlentities ou nl2br!!)
    // $t_corr: text correctif (!! sans htmlentities ou nl2br!!)
    // $distance: distance jusque laquelle le programme va cherche le mot correspondant.

    function Corriger($t_init, $t_corr, $distance)
    {
    // On regarde que les deux chaînes ne sont pas bêtement les mêmes, sans quoi, ça sert à rien de corriger.
    if ($t_init == $t_corr)
    echo '<p>Les deux chaînes sont identiques.</p>';
    else
    {
    // On remplace les retoursà la ligne par des $$
    $t_init = str_replace("\n"," $$ ",$t_init);
    $t_corr = str_replace("\n"," $$ ",$t_corr);

    // On fait attention aux signes de ponctuations
    $t_init = EspacePonctu($t_init);
    $t_corr = EspacePonctu($t_corr);

    // On stocke chaque mot de la première chaîne dant un tableau
    // $t_init = wordwrap($t_init, 1, '#', 0);
    $t_init = explode(' ', $t_init);
    array_push($t_init, "##");

    // On stocke chaque mot de la deuxième chaine dans un tableau
    // $t_corr = wordwrap($t_corr, 1, '#', 0);
    $t_corr = explode(' ', $t_corr);
    array_push($t_corr, "##");

    // On regarde quelle est la chaîne la plus longue
    $c_init = count($t_init);
    $c_corr = count($t_corr);
    if ($c_init > $c_corr)
    $c_small = $c_corr;
    else
    $c_small = $c_init;

    // On initialise le text final
    $t_final[0] = '';
    $t = 0;
    $i = 0;


    // On commence la boucle qui va tout tuer
    do
    {
    /*echo '<h3>Comparaison</h3>';
    echo 'A Comparer: '.$t_init[$i] .' - '. $t_corr[$i];*/
    if($t_init[$i] == $t_corr[$i]) // C'est les mêmes mots, rien à faire
    {
    $t_final[$t] = $t_init[$i];
    $t_init = ArrayExtract($t_init, $i);
    $t_corr = ArrayExtract($t_corr, $i);
    }
    else
    {
    // Bon, on va chercher où est la correspondance...
    $index_correspondance = '';

    $vi = $i;
    while($index_correspondance == '')
    {

    // On regarde si c'est pas t_corr qui a des mots en trop
    $v = $vi; // $v comme verif;)

    while ($v <= $distance && $v < count($t_corr))
    {
    // On regarde si ça correspond.
    //echo '<p>'.$t_corr[$v] .' - '. $t_init[$vi].'</p>';
    if ($t_corr[$v] == $t_init[$vi] OR $t_corr[$v] == "##")
    {
    $index_t_corr = $v;
    break 1;
    }

    $v++;
    }

    // On regarde si c'est pas t_init qui a des mots en trop
    $v = $vi; // Toujours $v comme verif;)

    while ($v <= $distance && $v < count($t_init))
    {
    // On regarde si ça correspond.
    //echo '<p>'.$t_init[$v] .' - ' . $t_corr[$vi].'</p>';
    if ($t_init[$v] == $t_corr[$vi] OR $t_init[$v] == "##")
    {
    $index_t_init = $v;
    break 2;
    }

    $v++;
    }
    $vi++;
    }
    /*echo '<h4>Initial</h4>';
    echo $index_t_init.'<br />';
    echo count($t_init).'<br />';
    echo '<h4>Correction</h4>';
    echo $index_t_corr.'<br />';
    echo count($t_corr).'<br />';*/
    if (count($t_init) == 1 && $index_t_corr == count($t_corr) -1 )
    {
    $t_final[$t] = '<span class="correction">'.$t_corr[$i].'</span>';
    $t_corr = ArrayExtract($t_corr, $i);
    }
    elseif (count($t_corr) == 1 && $index_t_init == count($t_init) -1 )
    {
    $t_final[$t] = '<span class="corrige">'.$t_init[$i].'</span>';
    $t_init = ArrayExtract($t_init, $i);
    }
    elseif ( ($index_t_init == count($t_init) - 1 && $index_t_corr == count($t_corr) - 1 ) // On regarde qu'il nous a pas mené betement à la fin comme un crétin d'ordinateur.
    && ($t_init[$i] != "##" && $t_corr[$i] != "##") // et qu'on est pas réellement à la fin
    )
    {
    //echo '<b>A la fin</b>';
    $t_final[$t] = '<span class="corrige">'.$t_init[$i].'</span> <span class="correction">'.$t_corr[$i].'</span>';
    $t_init = ArrayExtract($t_init, $i);
    $t_corr = ArrayExtract($t_corr, $i);
    }
    else
    {
    // Pour éviter qu'il fasse le gland en effaçant tout
    if ($index_t_init == count($t_init) - 1)
    $index_t_init = $i;
    if ($index_t_corr == count($t_corr) - 1)
    $index_t_corr = $i;

    // On regarde qui est le plus petit, et on fait en conséquence
    if ($index_t_corr > $index_t_init)
    {
    $tab_origine = 't_corr';
    $index_origine = $index_t_corr;
    $tab_correspondance = 't_init';
    $index_correspondance = $index_t_init;
    }
    else
    {
    $tab_origine = 't_init';
    $index_origine = $index_t_init;
    $tab_correspondance = 't_corr';
    $index_correspondance = $index_t_corr;
    }

    /*
    Résumons ce que contiennent les variables
    -----------------------------------------

    $i contient l'index du tableau

    $tab_origine contient le tableau où le mot à matcher est présent
    $index_origines contient l'index du tableau $tab_origine où le mot à matché est

    $tab_correspondance contient le tableau où le matching mot est présent
    $index_correspondance contient l'index du tableau $tab_correspondance où le matching word est présent

    Donc:

    Si on barre le contenu du tableau $t_init jusqu'au bon index
    et
    Si on met en rouge le contenu du tableau $t_corr jusqu'au bon index, ça devrait marcher...

    Bien entendu, il faudra supprimer le contenu des deux tableaux que l'on a affiché et donc baissé $i de 1

    J'ai envie de dire, c'est parti!!
    */


    $d_init = $i;
    $d_corr = $i;

    // On met les bons index où il faut
    if ($tab_origine == 't_init')
    {
    $f_init = $index_origine;
    $f_corr = $index_correspondance;
    }
    else
    {
    $f_init = $index_correspondance;
    $f_corr = $index_origine;
    }

    // Initialisation de variable
    $correction = array_fill(0,$distance,'');

    for($c = 0; $c < $f_init - $d_init; $c++)
    {
    $correction[$c] = $t_init[$d_init];
    $t_init = ArrayExtract($t_init, $d_init);
    }
    $t_final[$t] = '<span class="corrige">'.implode(' ',$correction).'</span>';


    // Initialisation de variable
    $correction = array_fill(0,$distance,'');



    for($c = 0; $c < $f_corr - $d_corr; $c++)
    {
    $correction[$c] = $t_corr[$d_corr];
    $t_corr = ArrayExtract($t_corr, $d_corr);
    }

    $t_final[$t] .= ' <span class="correction">'.implode(' ',$correction).'</span>';
    }

    }
    /*echo '<br /><b>Initial: </b>';
    print_r($t_init);
    echo '<br /><b>Correction: </b>';
    print_r($t_corr);
    echo '<br /><b>Final: </b>';
    print_r($t_final);*/

    $t++;
    } while (count($t_corr) != 1 OR count($t_init) != 1 );

    // On affiche les texte final
    $t_final = implode(' ',$t_final);
    $t_final = str_replace('##','',$t_final);
    $t_final = str_replace(" $$ ","\n",$t_final);
    $t_final = DeEspacePonctu($t_final);
    return '<p>'.$t_final.'</p>';
    }
    }


    ?>

  11. Essayer de vous faire accéder au serveur.

    Concernant la correction du petit chat noir en grande folle rose, je crois que ça va aller, mais je dois encore changer pas mal de chose, je fais ça demain, vous l'aurez dans la soirée normalement.

  12. Oui, j'allais le dire :D

    Bon, en tout cas, dans mon script, il reste plus que le bug des ponctuations (on va appeler ça comme ça) et des grande zone de texte à barré.

    J'y réfléchis, j'ai déjà une idée mais là je dois y aller.

    Url est ici

    PS: Tester pas trop trop quand même car c'est un serveur mutualisé.

  13. Ahaha, très bonne question.

    Je pars jusque dimanche, j'essaierai de me pencher sur la question quand je reviens (j'aime bien les défis).

    Une idée: Comparer une dizaine de caractères, si c'est les mêmes... C'est caisse. Mais comment??

×
×
  • Créer...