Passage php 5.4 - Function ereg() is deprecated
Résolu
oncletom
Messages postés
39
Date d'inscription
Statut
Membre
Dernière intervention
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je viens de passer mon hébergement en php 5.4 (sans possibilité de redescendre en php 4 ce que je n'envisage d'ailleurs pas)
Tout fonctionne à peu près sur mon site de photos, coupé en deux parties, l'une avec wordpress et l'autre avec une application assez ancienne genre photothèque
A voir ici : www.pariscool.com
La partie wordpress tourne comme il faut avec les mises à jour ad hoc
Mais j'ai un message d'alerte dans la partie admin de la photothèque :
Deprecated: Function ereg() is deprecated in /flex/domain/pariscool.com/site/www/album/include/user.inc.php on line 55
Après consultation des évolutions sur php.net , j'ai vu que la fonction ereg () était déclarée obsolète et qu'il convenait de la remplacer par preg_match()
Mais visiblement il ne suffit pas dans le code de remplacer ereg par preg_match, car les erreurs se succèdent.
Le code en question est celui-ci:
if ( isset( $session_id )
and ereg( "^[0-9a-zA-Z]{".$conf['session_id_size']."}$", $session_id ) )
Si je remplace ereg par preg_match, il proteste en me disant que ^ n'est pas fermé.
N'étant pas un spécialiste du php, je travaille par tatonnements successifs, mais là, la méthode "j'essaie tout jusqu'à ce que cela marche" semble bien insuffisante.
Pouvez-vous m'aider? Merci beaucoup
Je viens de passer mon hébergement en php 5.4 (sans possibilité de redescendre en php 4 ce que je n'envisage d'ailleurs pas)
Tout fonctionne à peu près sur mon site de photos, coupé en deux parties, l'une avec wordpress et l'autre avec une application assez ancienne genre photothèque
A voir ici : www.pariscool.com
La partie wordpress tourne comme il faut avec les mises à jour ad hoc
Mais j'ai un message d'alerte dans la partie admin de la photothèque :
Deprecated: Function ereg() is deprecated in /flex/domain/pariscool.com/site/www/album/include/user.inc.php on line 55
Après consultation des évolutions sur php.net , j'ai vu que la fonction ereg () était déclarée obsolète et qu'il convenait de la remplacer par preg_match()
Mais visiblement il ne suffit pas dans le code de remplacer ereg par preg_match, car les erreurs se succèdent.
Le code en question est celui-ci:
if ( isset( $session_id )
and ereg( "^[0-9a-zA-Z]{".$conf['session_id_size']."}$", $session_id ) )
Si je remplace ereg par preg_match, il proteste en me disant que ^ n'est pas fermé.
N'étant pas un spécialiste du php, je travaille par tatonnements successifs, mais là, la méthode "j'essaie tout jusqu'à ce que cela marche" semble bien insuffisante.
Pouvez-vous m'aider? Merci beaucoup
A voir également:
- Php ereg deprecated
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
2 réponses
Salut,
Les différences entre POSIX et PCRE sont listés ici : https://www.php.net/manual/fr/reference.pcre.pattern.posix.php
Un résumé des principales différences (délimiteurs et modificateurs) avec quelques exemples : https://stackoverflow.com/questions/6270004/how-can-i-convert-ereg-expressions-to-preg-in-php#answer-6270007
Bonne journée,
Les différences entre POSIX et PCRE sont listés ici : https://www.php.net/manual/fr/reference.pcre.pattern.posix.php
Un résumé des principales différences (délimiteurs et modificateurs) avec quelques exemples : https://stackoverflow.com/questions/6270004/how-can-i-convert-ereg-expressions-to-preg-in-php#answer-6270007
Bonne journée,
Salut oncletom,
https://www.php.net/manual/en/function.preg-match.php
https://www.php.net/manual/en/function.preg-match.php#96830
donc, essaye :
(non testé)
Dal
preg_matchnécessite que l'expression régulière soit délimitée par des caractères qui encadrent l'expression et qui, traditionnellement, sont des slashs (mais tu peux utiliser un autre caractère si tu préfères, si possible non utilisé dans l'expression, pour éviter d'avoir à l'échapper).
https://www.php.net/manual/en/function.preg-match.php
https://www.php.net/manual/en/function.preg-match.php#96830
donc, essaye :
if ( isset( $session_id ) and preg_match( "/^[0-9a-zA-Z]{".$conf['session_id_size']."}$/", $session_id ) )
(non testé)
Dal