11
votes

Comment résoudre l'utilisation de la fonction obsolète EREG () de PHP 5.3.0 dans Drupal 6.13

Quelqu'un sait résoudre l'erreur ci-dessous?

obsolète: la fonction Ereg () est obsolète en C: \ Wamp \ www \ Inclus \ File.inc sur la ligne 895

Il se passe après avoir installé Drupal 6.13 sur Wamp Server 2.0i avec PHP 5.3.0


0 commentaires

8 Réponses :


-2
votes

On dirait que le problème est avec PHP 5.3.0. Vous pouvez essayer de descendre à 5.2.9 comme suggéré par ce lien Drupal: http://drupal.org/node/514334


1 commentaires

Donc, au lieu de corriger l'erreur, vous suggérez de réduire une version massivement inférieure de PHP .... SMH.



11
votes

Dégazez votre niveau de déclaration d'erreur ci-dessous e_depecated .

PHP 5.3 a introduit deux nouveaux niveaux de reporting d'erreur, e_depecated et e_user_depecated et - pour la première fois dans l'histoire de PHP - ils ont commencé à s'éloigner des parties plus anciennes de leur API. La fonction EREG_ * * fonctionnera toujours, mais cet avertissement est destiné à vous faire savoir que "hé, ces fonctions vont bientôt disparaître, probablement dans la prochaine révision majeure).


0 commentaires

0
votes

Vous pouvez modifier votre fichier commun.Indic pour ignorer tranquillement les indicateurs d'erreur obsolète. Voir mon message: http://funkinetics.org/klink/ fonction-ereg-est-déprécée-erreur-in-drupal-6x-with-php-53 /


1 commentaires

Rayray, je pense que Alan Storm's Suggestion est préférable, car vous modifiez simplement le niveau de rapport d'erreur PHP. De toute façon, merci pour votre réponse!



0
votes

Une solution consiste à mettre à niveau le code-chrocode incriminé :-) Il est expliqué ici: http://drupal.org/node/514334#Comment-2852940


1 commentaires

Ouais! Cela a fonctionné pour moi, je viens d'ajouter le @ devant la fonction fautive. Comme @eeg ()



-2
votes

Parce que je n'ai pas le temps de mettre à jour le code hérité, j'ai ajouté la ligne suivante au code PHP pour supprimer les avertissements.

error_reporting(E_ALL ^ E_DEPRECATED);


0 commentaires

2
votes

Ajoutez simplement @ devant la fonction. E.g.

@eeg ()

Plus d'émission relative à la mise à niveau de vos serveurs Web qui exécutent PHP 5.3.0, pls se réfèrent

http: //www.rain-forest -forum.com/dotproject-net-Installation-issues-t263.html


2 commentaires

E_depecated signifie que la fonctionnalité sera supprimée à un moment donné (en effet, depuis ce commentaire, cela a été!), Vous viendrez donc de donner un coup de pied au problème de la ligne ici. Une meilleure pratique pour e_depecated serait de remplacer la ligne de code avec autre chose. Dans ce cas, Preg_Match serait celui.


Cela ne résout pas l'utilisation de la fonction amortie, il ne cache que le message d'erreur! Voir la réponse de @ Parmendrasingh pour une méthode de remplacement (travail).



1
votes

Ce n'est pas un problème de drupal.Le site Drupal Il est à noter qu'il ne prend pas encore en charge PHP 5.3 et que de nouveaux drapeaux d'erreur ont été ajoutés à PHP.

Solution1: Vous pouvez dégrader la version php.Vous pouvez revenir à PHP 5.2.x. Comme je ne suis pas sûr d'autres conflits avec Drupal et PHP 5.3.

Solution2: Toutefois, si vous préférez garder PHP 5.3, vous pouvez toujours supprimer les erreurs de fonction obsolète. À Drupal comprend / commun.Inc, Trouvez la ligne:

Si ($ errno & (e_all ^ e_notice)) { Et remplacez-le par:

si ($ errno & (e_all & ~ e_notice & ~ e_notice & ~ e_depecated)) {

Cela supprimera maintenant toujours les messages d'erreur obsolète.


0 commentaires

47
votes

Utilisez xxx

au lieu de xxx


0 commentaires