[PHP] Problème sur une fonction, hébergé sur un serveur UNIX

Problème sur une fonction, hébergé sur un serveur UNIX [PHP] - PHP - Programmation

Marsh Posté le 06-06-2004 à 19:38:20    

Bonjour,
 
J'ai un souci avec une fonction PHP.
 
J'utilise cette fonction dans plusieurs site et jusque là, aucun souci. Mon script PHP fonctionne aussi bien en local (avec Easy-PHP 1.7) que sur un hébergement avec serveur Linux ou IIS.
 
Je suis en train de développer un site qui sera sur un hébergement avec serveur Unix.
 
J'ai des messages d'erreur pour une bête fonction ereg() :
 

Citation :

while(ereg("{([^ ]{1,})}",$ligne,$tag)){
   if(!isset($data[$tag[1]])){
   $data[$tag[1]]="";
   }


Et j'ai droit au message d'erreur suivant :

Citation :

PHP Warning: ereg(): Invalid preceding regular expression in /hermes/data11/b648/toopy/sigmacom/library.inc.php on line 23


alors que tout fonctionne bien en local...  
 
Le site encore en développement est hébergé à l'adresse suivante (http://www.toopy.com/sigmacom), tout fonctionne à part que les endroits où il y a des balises comme {references} ou {menu} qui devraient être remplacées par du contenu de ma base MySql...
 
J'ai configuré Dreamweaver pour qu'il me fasse des sauts de ligne Unix dans mes scripts et j'utilise la version 4.3.3 de PHP, la même que sur le serveur ou est hébergé le site.
 
Si quelqu'un a eu des soucis similaires, ça serait bien de m'orienter, ça commençe à me gonfler sérieusement, vu que c'est une fonction que j'utilise depuis longtemps sans aucun problème.
 
Merci d'avance.


Message édité par AllForEver le 06-06-2004 à 19:39:49
Reply

Marsh Posté le 06-06-2004 à 19:38:20   

Reply

Marsh Posté le 06-06-2004 à 20:57:37    

essai de le faire avec preg (les regex perl)

Reply

Marsh Posté le 06-06-2004 à 23:11:18    

DocWario a écrit :

essai de le faire avec preg (les regex perl)


 
Je me suis arrêté à PHP et MySql..  :(  Et je ne maîtrise pas du tout Perl.  
 
Qui plus est, mon script doit obligatoirement être du PHP...
 
Merci tout de même d'avoir répondu.  :)


Message édité par AllForEver le 06-06-2004 à 23:11:46
Reply

Marsh Posté le 07-06-2004 à 10:41:06    

En fait DocWario ne te proposait pas de passer à Perl (à la place de PHP) mais d'utiliser les expressions régulières de type Perl (http://fr.php.net/manual/en/ref.pcre.php) au lieu des expressions régulières POSIX (http://fr.php.net/manual/en/ref.regex.php)

Reply

Marsh Posté le 07-06-2004 à 11:54:46    

Ok, j'ai lu un peu trop vite.
 
Si j'ai bien compris, ces expressions compatible PERL poseront moins de problèmes sur le serveur unix où je suis hébergé et rempliront les mêmes fonctions que ce que ereg() j'utilise actuellement.
 
Je teste dès ce soir.

Reply

Marsh Posté le 09-06-2004 à 16:22:06    

Je pense avoir saisi d'où pouvait venir mon problème, d'après http://didou.keliglia.com/php/phpm [...] =ref.regex à propos des expressions régulières de type POSIX.

Citation :

Ces expressions rationnelles ne sont pas compatibles avec les données binaires. Les expressions PCRE  le sont.


 
Donc, j'ai changé mon code en utilisant une expression régulière compatible Perl : preg_match().
 
Pour rappel, avant :

Code :
  1. ereg("{([^ ]{1,})}",$ligne,$tag)


 
Une fois modifiée :

Code :
  1. preg_match(("{([^ ]{1,})}",$ligne,$tag)


 
Seulement, ça ne fonctionne pas ; il y a un blocage dans la fonction.
 
Ça ne fonctionne pas, je pense, à cause des délimiteurs. Je recherche dans ma page tout ce qui est de la forme :

Code :
  1. {truc}


Si quelqu'un pouvait me donner un coup de main, ça serait vraiment bien parce que là je m'en sort vraiment pas. :(


Message édité par AllForEver le 09-06-2004 à 16:25:02
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed