Partage
  • Partager sur Facebook
  • Partager sur Twitter

Inclure un fichier

dans un preg ...

Sujet résolu
    1 février 2006 à 19:15:04

    Salut tout le monde (qui lit mon message) !


    Bon je suis face à un dilem, je cherche un inclure un fichier en remplacant une chaine de caractère par un include, ce qui me donne :

    <?php
    $contentfile=preg_replace('!<include_mod\[(.+)\]>!isU', include(REP_MOD.$1.EXT_MOD), $contentfile);
    ?>


    Et ceci me donne :

    Citation : Erreur php


    Parse error: parse error, unexpected T_DNUMBER, expecting T_VARIABLE or '$' in /home/www/liveinforest/www/test/system/tpl.inc.php on line 19




    Si quelqu'un pourrait me dire d'où vient l'erreur et/ou me donner une 'tite solution ça serait sympathique, merci d'avance ! :)

    @+
    • Partager sur Facebook
    • Partager sur Twitter
      1 février 2006 à 19:37:03

      Citation : Makkhdyn

      http://www.expreg.com/options.php
      Jette un oeil à l'option e




      Merci pour la rapidité de cette réponse !

      En fait j'avais déjà vu cette option mais j'la comprend pas trop, vous pouvez m'expliquer s'il vous plait ? :D

      Merci d'avance !

      @+
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        1 février 2006 à 19:40:05

        Simple:
        preg_replace('`(Masque)`e', 'include("\1.php")', $text);
        recherchera le mot Masque dans le texte et executera une inclusion de Masque.php
        Le replace sera mis entres guillemets même s'il s'agit d'un code php

        Jette un oeil aussi a preg_replace_callback()
        • Partager sur Facebook
        • Partager sur Twitter
          1 février 2006 à 19:59:25

          Citation : Makkhdyn

          Simple:
          preg_replace('`(Masque)`e', 'include("\1.php")', $text);
          recherchera le mot Masque dans le texte et executera une inclusion de Masque.php

          Le replace sera mis entres guillemets même s'il s'agit d'un code php


          Jette un oeil aussi a preg_replace_callback()



          Euh, on peut pas utiliser la variable $1 ?

          Parce que ça me met :

          Citation : Erreur php

          Parse error: parse error, unexpected T_DNUMBER, expecting T_VARIABLE or '$' in /home/www/liveinforest/www/test/system/tpl.inc.php on line 19



          Et j'ai mis :

          $contentfile=preg_replace('!<include_mod\[(.+)\]>!eisU', include(REP_MOD.$1.EXT_MOD), $contentfile);


          Et j'ai essayé de faire :

          $contentfile=preg_replace('!<include_mod\[(.+)\]>!eisU', include(REP_MOD.'\1'.EXT_MOD), $contentfile);


          Mais ça fait comme si '\1' était une chaine normale de caractères...

          Merci d'avance !

          @+
          • Partager sur Facebook
          • Partager sur Twitter
            1 février 2006 à 20:15:05

            <?php include('lien.php') or header('Location : lien); ?>

            Vila ;)
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              1 février 2006 à 20:15:25

              Relis la partie Attention ;)
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                2 février 2006 à 13:10:22

                Le replace sera mis entres guillemets même s'il s'agit d'un code php
                • Partager sur Facebook
                • Partager sur Twitter
                  2 février 2006 à 13:44:06

                  1) Le replacement pattern se met entre ""
                  2) Include ne s'utilise pas de ce cas ci, mais plutôt file_get_contents()
                  3) Bourdel mais arrêtez d'utiliser ! comme délimiteur ^^:p

                  $var = preg_replace("#<include_mod\[(.*?)]>#ise","file_get_contents('".REP_MOD."$1".EXT_MOD."')",$texte);
                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 février 2006 à 16:21:22

                    Ok, voila pas tout compris mais ca doit etre bon :D^^
                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 février 2006 à 18:54:55

                      Ca inclu !

                      Mais dans les ficheirs y'a des commandes "<?php echo $blabla; ?>" et ça les transforme pas...

                      Vous auriez pas une idée s'il vous plais ? :)

                      Merci d'avance !

                      @+
                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 février 2006 à 19:09:16

                        si, tu fais un eval() dessus :)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 février 2006 à 19:14:27

                          Citation : DHKold

                          si, tu fais un eval() dessus :)



                          Ca fait ça :

                          Citation : Erreur php


                          Parse error: parse error, unexpected '&' in /home/www/liveinforest/www/test/system/tpl.inc.php(19) : regexp code(1) : eval()'d code on line 1

                          Parse error: parse error, unexpected '<' in /home/www/liveinforest/www/test/system/tpl.inc.php(19) : regexp code(1) : eval()'d code on line 1



                          Donc ça marche pas trop !

                          Je remontre mon code source :

                          <?php
                          $contentfile=preg_replace('!<include_mod\[(.*)\]>!eisU', 'eval(file_get_contents("'.REP_MOD.'$1'.EXT_MOD.'"))', $contentfile);
                          ?>


                          Merci d'avance ! :)

                          @+
                          • Partager sur Facebook
                          • Partager sur Twitter
                            2 février 2006 à 19:17:53

                            hum essaie de faire le eval() après la regex, sur $contentfile()
                            • Partager sur Facebook
                            • Partager sur Twitter
                              2 février 2006 à 19:23:02

                              C'est bysare ça quand même, y'a une erreur du eval() ...

                              Citation : Erreur php

                              Parse error: parse error, unexpected '<' in /home/www/liveinforest/www/test/system/tpl.inc.php(20) : eval()'d code on line 1



                              Et le code php :

                              <?php
                              $contentfile=preg_replace('!<include_mod\[(.*)\]>!eisU', 'file_get_contents("'.REP_MOD.'$1'.EXT_MOD.'")', $contentfile);
                              $contentfile=eval($contentfile);
                              return($contentfile);
                              ?>


                              Tout ça c'est bien bysare je trouve perso :/

                              Je vais chercher pour l'erreur mais il me faudrais un dico php de toutes les erreurs possible et qui dit comment les régler...

                              Merci d'avance !

                              @+
                              • Partager sur Facebook
                              • Partager sur Twitter
                                2 février 2006 à 19:37:35

                                hum, essaie comme ca:

                                $contentfile = eval( substr($contentfile,5,-2) );

                                L'erreur vient du fait que eval place automatiquement <?php au début du code et ?> àla fin. Or, comme ils y sont déjà, ca fait une erreur!
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  2 février 2006 à 19:44:17

                                  Pas bête l'idée mais enfait il y'a plein de "<?php" et de "?>" dans ma page ^^

                                  Et pui ça me met cette erreur :

                                  Citation : Erreur php

                                  Parse error: parse error, unexpected '=', expecting T_STRING in /home/www/liveinforest/www/test/system/tpl.inc.php(20) : eval()'d code on line 1



                                  Merci d'avance :)

                                  @+
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Anonyme
                                    2 février 2006 à 19:55:13

                                    eval('?>'.$contentfile.'<?php');
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      3 février 2006 à 22:38:12

                                      Citation : Makkhdyn

                                      eval('?>'.$contentfile.'<?php');




                                      Désolé du retard de la réponse.

                                      Ca change rien...

                                      Ou sinon faudrait que je mettes les variables en javascript ^^

                                      @+
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Inclure un fichier

                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                      • Editeur
                                      • Markdown