Il est quasiment obligatoire que vous ayez déjà rencontré cette erreur et peut-être tombez-vous sur cet article après une recherche d’explication sur le net car vous venez de la rencontrer.
Cette erreur est assez courante lorsque l’on débute, mais elle arrive aussi lorsqu’on a de mauvaises habitudes de présentation du code, ou lorsque l’on code depuis plus de 4h sans pause 😀
Signification
Cette erreur est plutôt simple à comprendre, mais moins à corriger lorsque votre code est très long.
Elle signifie : « Erreur d’analyse syntaxique : erreur de syntaxe, fin de code inattendue ».
Autrement dit, quelque chose ne se termine pas correctement dans votre code.
Pourquoi ?
Il arrive qu’un caractère « saute » dans notre code, par un mauvais copier/coller, une touche rebelle du clavier, ou un simple oubli lors de la réécriture d’une portion, par exemple.
Voici ce qui peut provoquer cette erreur :
- vous oubliez de fermer une parenthèse : du coup PHP analyse la suite du code comme appartenant au contenu entre parenthèses jusqu’à ce qu’il trouve la fin ;
- vous oubliez de fermer une accolade : PHP estime donc que tout le code qui suit fait partie du même bloc jusqu’à la fin du document ;
- vous oubliez de fermer un guillemet : PHP va chercher le prochain guillemet qui ferme la chaîne de caractères, guillemet qu’il ne trouvera pas ;
Débogue
PHP vous donne gentiment la dernière ligne de votre document en guise d’indice. C’est normal puisqu’il parcours tout votre document à la recherche du caractère manquant.
Lorsque votre script fait une centaine de lignes, le débogue « à l’œil nu » suffit bien souvent.
Si ce n’est pas le cas, je vous propose une stratégie de débogue que j’utilise parfois qui consiste à compter le nombre de caractère fermant et ouvrant.
C’est valable pour la parenthèse et l’accolade, pour le guillemet ou l’apostrophe (simple quote) il vous faudra vérifier que le résultat du compte soit un nombre pair.
Pour cela, votre outil d’édition peut vous aider. Pour ma part j’utilise Notepad++ qui permet de compter le nombre d’occurrences d’une chaîne dans votre document actif.
Faites CTRL + F pour ouvrir le panneau de recherche.
Rentrez le caractère recherché dans le champ « Recherche », et cliquez sur le bouton « Compter ».
Une fenêtre apparaît avec le nombre d’occurrences trouvées.
Si vous souhaitez conserver un historique des comptes, vous pouvez aussi utiliser le bouton « Rechercher dans le document actuel » qui sert à la base à afficher les lignes du document où le caractère recherché apparaît, mais qui fait aussi un compte des occurrences.
Éviter cette erreur
Il n’y a pas de secret, une bonne présentation du code est primordiale.
Aussi, au lieu d’une présentation de ce type :
<?php
if($var<=10) {
for($i=0; $i<$var;$i++) {
echo '<span class="counter nb'.$i.'">'.$i.'</span>';
}
}
?>
préférez une présentation indentée et aérée :
<?php
if( $var <= 10 )
{
for( $i=0 ; $i < $var ; $i++ )
{
echo '<span class="counter nb' . $i . '">' . $i . '</span>';
}
}
?>
Certains logiciels d'édition vous permette d'automatiser des tâches répétitives, comme par exemple, avec l'auto-complétion, la fermeture d'une parenthèse ou d'une accolade lors de son ouverture, ou la création de macro pour la syntaxe d'une boucle, etc. Activez-les et abusez-en !
Si vous avez d'autres techniques n'hésitez pas 😉
J'espère que cet astuce vous sera utile.
Bon code !
Il suffit d’écrire les deux parenthèses ou guillemets en premier lieu pour écrire ensuite le code dedans. une habitude qui permet d’éviter ce genre d’erreurs-à mon avis-.
Grade A stuff. I’m uqnuetsinobaly in your debt.
@nehal : effectivement ça peut être une astuce. C’est ce que je fais sur NotePad++ faute d’auto-complétion à la hauteur.
Dès lundi je vais tester Aptana 3 qui m’a l’air prometteur.
@woods : thank you. I would have liked having your opinion or your methods to avoid this kind of error.
++
thank’s
Merci, cette méthode m’a fait gagner beaucoup de temps !
Brillant !!! Les idées les plus évidentes sont les meilleures ! Merci
Je suis en galère,
j’ai fais un copié collé de la foncion du theme de mon site dans wordpress et maintenant j’ai le message sintax error.
Je n’ai plus accer au manager
Je suis débutant, aidez moi SVP!!!!!
Hello,
Je ne vais pas pouvoir t’aider sans voir le message d’erreur (précis) ou le code.
Bonne journée.
Bonjour Geoffrey.
Voici, le message d erreur:
Parse error: syntax error, unexpected ‘;’ in /homez.429/tornadem/www/wp-content/themes/Starkers/functions.php on line 131
J’ai pu accéder à mon manager wordpress et au site en renommant le fichier de mon thème par mon thèmeX via FTP, du coup le thème de base s’installe par défaut.
Par contre mon site n’a plus rien avoir. J’aimerai corriger l’erreur dans mon thème habituel afin de le réinstaller, que dois je faire pour cela?
Merci
Bonjour Geoffrey,
Le problème est résolu, il y avait une erreur sur une parenthèse sur la ligne.
Merci quand même.
Marc
Perso j’aurais plutôt mis :
Évitez cette erreur
echo '<span class="counter nb' + $i + '">' + $i + '</span>';
Préférez le php au javascript
echo '<span class="counter nb' . $i . '">' . $i . '</span>';
😉
Oh mince ! Merci 🙂
#mékilékon
Bonjour,
je suis nouvelle dans l’outil wordpress. J’ai voulu modifier le fichier functions.php en faisant attention… mais cela m’affiche ce message maintenant.
Parse error: syntax error, unexpected ‘<' in /homez.687/archeven/www/wp-content/themes/twentyeleven/functions.php on line 633
J'ai bien compris la méthode pour me corriger mais je ne peux du coup pas accéder à mon espace administrateur…
Vous croyez que vous pouvez m'aider ????
Merci beaucoup, je vous en serai très reconnaissante.
Anais
Bonjour,
C’est classique lorsqu’on est pas habitué à la lecture du PHP (ça arrive aussi quand on a l’habitude :p).
Cette ligne mentionnée est-elle la dernière du fichier ? Serait-il possible de copier/coller et partager le code via PasteBin ? Merci
Bonjour,
Je viens d’avoir la même erreur. Pouvez-vous m’aider ?
Parse error: syntax error, unexpected ‘<' in /homepages/46/d354718681/htdocs/loew/wp-content/themes/xmarket/code/widgets.php on line 15
merci
loick
Bonjour,
Non, puisque comme vous avez dû le lire dans l’article je ne peux pas trouver l’erreur sans avoir le contenu du fichier.
Bonne soirée.
Bonjour,
Depuis hier soir j’ai fait la maligne en voulant modifier le code le du fichier functions.php et je me retrouve avec :
Parse error: syntax error, unexpected ‘<' in /homez.744/curiosith/www/wp-content/themes/emphaino/functions.php on line 162
Comment vous envoyer le code du fichier sachant que je n'ai plus accès à mon interface à cause de cette erreur ?
Votre aide m'est précieuse 🙂
Bonjour,
Ah mince, tu as dû oublier l’ouverture ou fermeture du tag PHP.
Tu es chez OVH, tu n’aurais pas un accès FTP sous la main ? Tu va modifier ton fichier grâce à Filezilla ou autre client FTP.
Ton fichier se trouve dans : wp-content/themes/[nom-du-theme]/functions.php
Si tu ne t’en sors pas on voit ça par e-mail.
Bonne journée.
voici une erreur que j’ai je n’arrive pas a entrer sur ma page admin wordpress:
Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in /homez.627/fmespoir/www/wp-content/plugins/attachment-manager/wp-attachment-manager.php on line 72
Bonjour,
Essayez de désactiver ce plugin (attachment-manager) en renommant le nom de son dossier. Via FTP cela devrait vite être résolu.
Ensuite prenez le temps d’analyser le fichier
wp-attachment-manager.php
pour vérifier s’il n’y a pas une erreur quelque part.Bon courage.
Bonjour, voilà j’ai un problème que je n’arrive pas à résoudre : Parse error: syntax error, unexpected ‘}’ in.
J’ai vérifier à « l’oeil nu » et avec ctrl+f j’ai compter sur notepad le nombre de { et } et je trouve le même nombre !
Merci d’avance.
Bonsoir,
Et c’est à ce moment qu’il faut que j’active mes dons de voyance ? :p
Sinon en utilisant Pastebin ça pourrait aider pour voir la composition de votre fichier.
Bonne soirée.
Bonjour à tous !
Je viens de copier mon site en local mais mon template m’annonce :
Parse error: syntax error, unexpected end of file in C:\wamp\……..\page.php on line 171
J’ai vérifié avec la méthde ci-dessus (très utile!) l’occurrence des parenthèss, accolades, guillemets et autre apostrophe, mais je n’ai pas trouvé l’erreur.
Pourriez-vous m’aider ?
Merci d’avance 😉
http://pastebin.com/SA85T3q7
Hello,
Il y a un truc bizarre ligne 47. Il manque une accolade ouvrante ou un « : », et en fonction de ton choix il manque plus bas une accolade fermante ou un « endif; ».
Bon courage 🙂
Merci de ta réponse Geoffrey, mais après correction, le message d’erreur est toujours là… Ce n’était sans doute pas la seule…
Re,
Tout dépend comment tu as corrigé la chose.
Ligne 73 tu as une version raccourcie de du tag d’ouverture PHP. Je te conseille de toujours utiliser « » qu’est-ce ?
Mais globalement :
Avec tout cela tu devrais plus facilement trouver ton erreur 🙂
J’ai galéré à trouver mon « Parse error: syntax error, unexpected end » (…)
Marchait chez moi, pas chez Free
En fait il fallait changer le style de retour à la ligne de MAC à Windows (le truc bien invisible)
Dans Notepad++ : Edition / Convertir les sauts de ligne
Hello,
Merci pour ton partage 🙂
Bonjour,
Merci et bravo pour votre article
J’ai le message d’erreur suivant:
Parse error: syntax error, unexpected ‘}’ in /home/lecorrid/www/wp-includes/load.php on line 780
et je suis perdu…
Si vous avez une idée… Merci d’avance
Bonjour,
Avez-vous modifié le fichier mentionné dans l’erreur PHP (wp-includes/load.php) ?
Ce fichier ne devrait pas provoquer d’erreur nativement.
Il faudrait que je vois le fichier pour vous aider
Bonne journée.
Merci pour votre réponse.
Je ne pense pas l’avoir modifié mais mon webmaster (qui n’a pas le temps de regarder) me dit que ce doit être les extensions que j’ai installées…
Voici donc le contenu du fichier
– contenu supprimé –
Ce n’est pas très judicieux, pour votre sécurité et la lisibilité de mon blog, de publier le contenu complet de ce fichier ici.
Vous avez certainement loupé à deux reprises le message au-dessus du formulaire que vous avez rempli. 🙂
Merci
Salut !
Et voila moi aussi je suis dans la meme galère, un code parse error et je n’ai plus accès a rien !! Pourrais-tu me dire comment retrouver le fichier, je suis sur mac ?
Parse error: syntax error, unexpected ‘more’ (T_STRING) in /home/content/p3nexnas06_data01/61/2190161/html/wp-content/themes/parallax-pro/functions.php on line 158
Hello,
As-tu un accès FTP ?
D’après ton hébergeur la démarche est la suivant pour accéder au dossier racine de ton site :
http://support.godaddy.com/help/article/96/tlcharger-des-fichiers-vers-votre-site-web-ftp
Une fois que tu es dans le dossier racine, tu vas dans
wp-content/themes/parallax-pro/functions.php
et tu regardes aux alentours de la ligne 158 s’il manque pas un petit quelque chose.Bon courage !
bonjour,
j ai voulu vérifier les permaliens de mon site et cela m a affiché le message suivant:
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /home/freelancb/www/wp-admin/index.php on line 103
Qu ‘est ce que ça signifie!
Merci de ton retour!
sur la ligne indiqué la ligne 103 il est indiqué ceci:
Bonsoir,
Même problème que pour la plupart des personnes présentent sur cette page avec ce message d’erreur :
« Parse error: syntax error, unexpected ‘$time_string’ (T_VARIABLE), expecting ‘{‘ in /homepages/46/d609190029/htdocs/grogrogro/wp-content/themes/a-piece-of-cake/inc/template-tags.php on line 71 »
J’ai voulu retirer la date et l’auteur d’une parution et lorsque que j’ai mis à jour le code, plus d’accès…
Pourriez-vous m’aider svp ? J’ai bien sûr gardé le code original afin de réparer mes erreurs, mais je n’arrive plus à accéder à rien.
Merci d’avance.
Bonne soirée,
Vincent.
Bonjour Vincent,
Pour pouvoir vous aider, rien de tel qu’un partage de votre code sur PasteBin. Cela me permettra de voir où est l’erreur.
Merci 😉
salut Geoffrey je viens de découvrir ton il est vraiment génial.