Eregi_replace()

Résolu
Bonjour,

J'ai un petit soucis avec ma méthode eregi_replace() :
$this->page = eregi_replace("{" . $tag . "}", $data, $this->page);


En local elle marche super (pour un système de template tout simple).

Par contre chez OVH, j'ai cette erreur autant de fois que je l'utilise (la méthode) :
Warning: eregi_replace() [function.eregi-replace]: Invalid preceding regular expression in /homez.109/aircontr/www/lib/template.php on line 33


J'ai tout mes hébergeurs chez OVH donc j'ai un peu de mal à tester sur d'autres environnement de production, excepté sur un serveur d'université et là ça remarche comme en local.

Si vous avez une idée je vous remercie d'avance :)
Configuration: Linux
Firefox 3.0.9

7 réponses

  1. Modérateur
    Salut,

    Essai
     $tag="{" . $tag . "}";
    $this->page = eregi_replace($tag, $data, $this->page);
    --
    106485010510997108
    1. Même erreur mais une ligne plus loin :P

      Warning: eregi_replace() [function.eregi-replace]: Invalid preceding regular expression in /homez.109/aircontr/www/lib/template.php on line 34
      1. Modérateur
        Re,

        Peut être qu'il sera bien de voir le contenu de $tag et $data
        1. Voici le retour, j'affiche désormais $tag et $data avant de faire le eregi_replace() :

          tag : {SITE_TITLE}
          data : Dupont Air Control SA
          Warning: eregi_replace() [function.eregi-replace]: Invalid preceding regular expression in /homez.109/aircontr/www/lib/template.php on line 36
          
          tag : {STYLESHEET}
          data : style1.css
          Warning: eregi_replace() [function.eregi-replace]: Invalid preceding regular expression in /homez.109/aircontr/www/lib/template.php on line 36
          
          tag : {LANGUAGE}
          data : window.onload =
          Warning: eregi_replace() [function.eregi-replace]: Invalid preceding regular expression in /homez.109/aircontr/www/lib/template.php on line 36
          
          tag : {LANG}
          data : en
          Warning: eregi_replace() [function.eregi-replace]: Invalid preceding regular expression in /homez.109/aircontr/www/lib/template.php on line 36
          
          tag : {LANG_IMG}
          data : en.png
          Warning: eregi_replace() [function.eregi-replace]: Invalid preceding regular expression in /homez.109/aircontr/www/lib/template.php on line 36


          Je n'ai pas tout mis car les autres sont pareilles. Mais tout semble bon, $tag contient bien ce qu'il faut remplacer, et $data ce par quoi il faut le remplacer :$

          C'est vraiment bizarre que ça marche parfaitement en local et juste pas sur mon hébergement.
          1. Modérateur
            Re,

            Essaie avec des apostrophes
            $this->page = eregi_replace('{' . $tag . '}', $data, $this->page);
            --
            106485010510997108
            1. Waouh j'ai trouvé, j'avais pourtant déjà testé mais là ça marche maintenant en local et sur l'hébergeur :)

              Voici donc la petite solution :

              $tag = '\{'.$tag.'\}';
              $this->page = eregi_replace($tag, $data, $this->page);


              Il fallait donc rajouter des antislashes devant { et devant } car ils peuvent être interpréter sinon, mais ce n'est pas le cas tout le temps apparament ^^

              Merci beaucoup pour l'aide, je n'aurais pas continuer à chercher si tu n'aurais pas continuer de proposer des pistes de solution :P