IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] probleme avec mon code pour faire un parseur !


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Avatar de Joe-La-Boule
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 219
    Points : 451
    Points
    451
    Par défaut [Tableaux] probleme avec mon code pour faire un parseur !
    Bonjour cher lecteur de ce topic !
    j'ai un probleme avec ce code en fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <?php
    $patterns = array(
        '[lien](.*?)[\/lien]/',
        '[lien url=\'(.*?)\'](.*?)[\/lien]/',
        '[image](.*?)[\/image]/',
        '[gras](.*?)[\/gras]/s',
        '[souligne](.*?)[\/souligne]/s',
        '[italique](.*?)[\/italique]/s',
        '[couleur=(.*?)](.*?)[\/couleur]/s',
        '[barre](.*?)[\/barre]/s',
        '[citation nom=\'(.*?)\'](.*?)[\/citation]/s',
        '[titre1](.*?)[\/titre1]/s',
        '[titre2](.*?)[\/titre2]/s'
        );
    $replacements = array(
        '<a href="\\1">\\1</a>',
        '<a href="\\1">\\2</a>',
        '<img src="\\1"/>',
        '<b>\\1</b>',
        '<span style="text-decoration: underline">\\1</span>',
        '<i>\\1</i>',
        '<span style="color: \\1;">\\2</span>',
        '<span style="text-decoration: line-through;">\\1</span>',
        '<div align="left"><strong>Citation: \\1 </strong></div><div style="background-color:#FFFFFF; border: 1px dashed #000000; width: 95%; font-family: Verdana, \'Trebuchet MS\', Tahoma, \'Times New Roman\', Times, serif; text-align: left; font-size: 11px;" align="center">\\2</div>',
        '<p align="center"><span class="titre1_fscode">\\1</span></p>',
        '<p align="center"><span class="titre2_fscode">\\1</span></p>'
        );
    ?>
    et c'est donc un code pour changer mon BBcode en balises html !





    J'ai inclus cette page dans la page d'accueil suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
     
    <?php
    session_start();
    ?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
     
                <head>
                    <title>Bienvenue sur Blender-Gallery :) --> Site en Construction...</title>
     
                    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     
     
                    <link rel="stylesheet" media="screen" type="text/css" href="design/style.css" />
     
     
                    <!--       Fonctions Javascript  !       -->
     
                    <script type="text/javascript">
                    //fonction pour la speedbarre et les sous-menus...
                    <!--
                    window.onload=montre;
                    function montre(id) 
                    {
                    var d = document.getElementById(id);
                        for (var i = 1; i<=10; i++) {
                            if (document.getElementById('smenus'+i)) {document.getElementById('smenus'+i).style.display='none';}
                        }
                    if (d) {d.style.display='block';}
                    }
                    //-->
     
     
     
     
                    //Fonction qui redirige à la page d'accueil au bout de 2 secondes...
                    function redirige()
                    {    
                        setTimeout('document.location.href="index.php"', 2000);
                    }
     
                    </script>
     
                </head>
     
                <body>
     
                    <center id="banniere">
                        <?php 
                               include("parts/header.php");
                        ?>
                   </center>
     
                   <center>
                   <ul id="speedbar">
                           <?php
                               include("parts/speedbar.php");
                           ?>
                   </ul>
                   </center>
     
                   <div id="menu_gauche">
                           <?php
                               include("parts/menu_gauche.php");
                           ?>
                   </div>
     
                    <div id="contenu">
     
                        <?php
                        if(isset($_GET['p']))
                        {
     
     
                        }
     
     
                        else
                        {
                            ?>
                                <center>
        <h4>Bienvenue sur Free-Software !</h4>
                <br />
                <br />    
                <h1>Les News</h1>
                <br />
                <span>
     
                                    <br />
                                    <?php
                                                require("config.inc.php");
     
     
                                                mysql_connect("$host","$username","$password");
                                                mysql_select_db("$bdd_name");
     
                                                $limit_par_page = 8; 
                                                if(isset($_GET['n']) AND !empty($_GET['n'])) 
                                                {
                                                        $n = intval($_GET['n']); 
                                                }
                                                else
                                                {
                                                        $n = 1; 
                                                }
                                                $from = ($n - 1) * $limit_par_page; 
     
                                                $reponse=mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT '.$from.', '.$limit_par_page);
     
                                        while($donnees=mysql_fetch_array($reponse))
                                        {
                                        $id=$donnees['id'];
                                        $sql_compte= mysql_query("SELECT COUNT(*) AS nb_commentaire FROM commentaires_news WHERE idnews='".$donnees['id']."' ") or die(mysql_error());
     
                                        include("parser_zcode.php");
     
                                        $contenu = $donnees['contenu'];
                                        $contenu_parser = preg_replace($patterns, $replacements, $contenu);
     
                                    ?>
                                        <table class="news" style="margin-left: auto;margin-right: auto;" >
     
                                            <tr>
                                                <td><h4><?php echo  stripslashes($donnees['titre']); ?></h4></td>
                                            </tr>
                                            </center>
                                            <tr>
                                                <td class="news_message">
                                                <?php
                                                if($_SESSION['login']==$donnees['pseudo'])
                                                {
                                                ?>
                                                <div style="text-align: left;padding: 0px;margin: 0px;">
                                                <?php  echo '<a href="index.php?p=40&id_news='.$donnees['id'] . '" >';?>Editer</a>
                                                </div>
                                                <?php
                                                }
                                                ?>
                                                <div style="text-align: right;">
                                                <?php  echo '<a href="index.php?p=55&voir='.$donnees['id'] . '" >';?><?php echo mysql_result($sql_compte,0,'nb_commentaire'); ?> Commentaires</a>
                                                </div>
                                                <br />
     
                                                <?php echo $contenu_parser; ?>
                                                <br /> 
                                                <br />
                                                <div style="font-size: 13px;" align="center">
                                                Par <span style="color: green;"><?php echo $donnees['pseudo'];?></span>
                                                <br />
                                                Posté le <span style="color: green;"><?php echo $donnees['date']; ?>
                                                </div>
                                                </td>
                                            </tr>
     
                                        </table>
                                        <br />
                                        <center>
                                        <?php
                                        }
                                        $requete = mysql_query('SELECT COUNT(*) AS nb_news FROM news');
                                        $donnees = mysql_fetch_assoc($requete);
     
                                        $nb_pages = ceil($donnees['nb_news'] / $limit_par_page);  
                                        ?>
                                    </span>
                                    <p style="text-align:center;">Page : 
                                                      <?php
                                    for ($i = 1 ; $i <= $nb_pages ; $i++)
                                    {
                                    ?>
                                      <a href="index.php?n=<?php echo '' . $i . ''; ?>"><?php echo '' . $i . ''; ?></a>
                                    <?php
                                    }
                                    echo '</p>';
                    mysql_close();
                    ?>        
                    </center>
                            <?php
                        }
                        ?>
                    </div>
     
     
     
                    <div id="bas_page">
                    <?php include("parts/bas_page.php"); ?>
                    </div>
     
                </body>
     
        </html>

    Oui ,je sais le code est tres long !

    Bref quoi qu'il en soit , si vous avez une suggestion, aidez moi !

    Merci cher lecteur !

    A+ (sachez que vous pouvez aussi m'aider sur le chat car j'y suis tout le temps )

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    salut
    quel est ton problem ??

  3. #3
    Membre confirmé
    Avatar de Joe-La-Boule
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 219
    Points : 451
    Points
    451
    Par défaut
    Citation Envoyé par jeff_!
    salut
    quel est ton problem ??
    en fait je vaux remplacer le code par des balises html et voila le resultat :

    http://blender.gallery.free.fr/index.php


    J'espere pouvoir regler ce probleme !

    merci

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Effectivement vous semblez avoir oublier le délimiteur de l'expression régulière !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $patterns = array(
        '#[lien](.*?)[/lien]#',
        '#[lien url=\'(.*?)\'](.*?)[/lien]#',
        '#[image](.*?)[/image]#',
        '#[gras](.*?)[/gras]#s',
        '#[souligne](.*?)[/souligne]#s',
        '#[italique](.*?)[/italique]#s',
        '#[couleur=(.*?)](.*?)[/couleur]#s',
        '#[barre](.*?)[/barre]#s',
        '#[citation nom=\'(.*?)\'](.*?)[/citation]#s',
        '#[titre1](.*?)[/titre1]#s',
        '#[titre2](.*?)[/titre2]#s'
        );
    Un délimiteur bien choisi vous évite à avoir à échapper celui-ci.


    Julp.

  5. #5
    Membre confirmé
    Avatar de Joe-La-Boule
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 219
    Points : 451
    Points
    451
    Par défaut
    Je doit changer quoi dans la variable $replacements ensuite ?

  6. #6
    Membre confirmé
    Avatar de Joe-La-Boule
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 219
    Points : 451
    Points
    451
    Par défaut
    vous ne pouvez vraiment pas m'aider ???

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par antony59370
    vous ne pouvez vraiment pas m'aider ???
    Avez-vous essayé de remplacer la variable $patterns (et uniquement celle-ci) avec ce que je vous ai donné : vous aviez des erreurs de délimiteurs ? Si c'est le cas redonnez nous votre code ainsi que les erreurs !


    Julp.

  8. #8
    Membre confirmé
    Avatar de Joe-La-Boule
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 219
    Points : 451
    Points
    451
    Par défaut
    regarde le code ainsi modiffié et voila le message d'erreur qui le suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    $patterns = array(
        $patterns = array(
        '#[lien](.*?)[/lien]#',
        '#[lien url=\'(.*?)\'](.*?)[/lien]#',
        '#[image](.*?)[/image]#',
        '#[gras](.*?)[/gras]#s',
        '#[souligne](.*?)[/souligne]#s',
        '#[italique](.*?)[/italique]#s',
        '#[couleur=(.*?)](.*?)[/couleur]#s',
        '#[barre](.*?)[/barre]#s',
        '#[citation nom=\'(.*?)\'](.*?)[/citation]#s',
        '#[titre1](.*?)[/titre1]#s',
        '#[titre2](.*?)[/titre2]#s'
    (ceci est la ligne 15 !!!)    );
    $replacements = array(
        '<a href="\\1">\\1</a>',
        '<a href="\\1">\\2</a>',
        '<img src="\\1"/>',
        '<b>\\1</b>',
        '<span style="text-decoration: underline">\\1</span>',
        '<i>\\1</i>',
        '<span style="color: \\1;">\\2</span>',
        '<span style="text-decoration: line-through;">\\1</span>',
        '<div align="left"><strong>Citation: \\1 </strong></div><div style="background-color:#FFFFFF; border: 1px dashed #000000; width: 95%; font-family: Verdana, \'Trebuchet MS\', Tahoma, \'Times New Roman\', Times, serif; text-align: left; font-size: 11px;" align="center">\\2</div>',
        '<p align="center"><span class="titre1_fscode">\\1</span></p>',
        '<p align="center"><span class="titre2_fscode">\\1</span></p>'
        );
    ?>

    Message :

    Parse error: syntax error, unexpected ';', expecting ')' in /mnt/136/sdc/7/6/blender.gallery/parser_zcode.php on line 15






    Merci julp dessayer de maider

  9. #9
    Membre habitué Avatar de Cyberbob002
    Inscrit en
    Mai 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 140
    Points : 146
    Points
    146
    Par défaut
    Un peu logique ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $patterns = array(
        $patterns = array(
    enlèves en un !

  10. #10
    Membre confirmé
    Avatar de Joe-La-Boule
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 219
    Points : 451
    Points
    451
    Par défaut


    nouveau message d'erreur now :

    Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 16378628 bytes) in /mnt/136/sdc/7/6/blender.gallery/index.php on line 117




    voila donc le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <?php
    $patterns = array(
        '#[lien](.*?)[/lien]#',
        '#[lien url=\'(.*?)\'](.*?)[/lien]#',
        '#[image](.*?)[/image]#',
        '#[gras](.*?)[/gras]#s',
        '#[souligne](.*?)[/souligne]#s',
        '#[italique](.*?)[/italique]#s',
        '#[couleur=(.*?)](.*?)[/couleur]#s',
        '#[barre](.*?)[/barre]#s',
        '#[citation nom=\'(.*?)\'](.*?)[/citation]#s',
        '#[titre1](.*?)[/titre1]#s',
        '#[titre2](.*?)[/titre2]#s'
        );
    $replacements = array(
        '<a href="\\1">\\1</a>',
        '<a href="\\1">\\2</a>',
        '<img src="\\1"/>',
        '<b>\\1</b>',
        '<span style="text-decoration: underline">\\1</span>',
        '<i>\\1</i>',
        '<span style="color: \\1;">\\2</span>',
        '<span style="text-decoration: line-through;">\\1</span>',
        '<div align="left"><strong>Citation: \\1 </strong></div><div style="background-color:#FFFFFF; border: 1px dashed #000000; width: 95%; font-family: Verdana, \'Trebuchet MS\', Tahoma, \'Times New Roman\', Times, serif; text-align: left; font-size: 11px;" align="center">\\2</div>',
        '<p align="center"><span class="titre1_fscode">\\1</span></p>',
        '<p align="center"><span class="titre2_fscode">\\1</span></p>'
        );
    ?>
    merci a tous de m'aider


  11. #11
    Membre habitué Avatar de Cyberbob002
    Inscrit en
    Mai 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 140
    Points : 146
    Points
    146
    Par défaut
    Ton script demande plus de 16 Mo en mémoire, c'est énorme !!
    Je ne pense pas que ca vienne du traitement de chaine (ou alors c'est un livre )

    tu dois avoir une fonction qui demande beaucoup de mémoire autre part dans ton script (ex : traitement d'une image)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec mon code pour accès au serveur ftp
    Par mimi51340 dans le forum Général Java
    Réponses: 1
    Dernier message: 03/03/2008, 23h24
  2. regler un probleme avec mon code
    Par kachaloarmin dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/11/2007, 13h19
  3. [Tableaux] Probleme avec le code
    Par fjd59 dans le forum Langage
    Réponses: 37
    Dernier message: 06/03/2007, 17h53
  4. Probleme avec mon code : Comment changer de JPanel
    Par serialkilled dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 17/12/2006, 10h13
  5. Problème avec mon code et avec gcc
    Par JavaAcro dans le forum Linux
    Réponses: 3
    Dernier message: 13/06/2006, 22h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo