Flux rss
Collection CommentCaMarche.net

Parse error: syntax error, unexpected $end

Publié par kilian, dernière mise à jour le vendredi 27 juin 2008 à 22:31:56 par fleursdespyrenees
Lorsque l'on programme en Php, on se retrouve inévitablement un jour devant ce genre d'erreur:
Parse error: syntax error, unexpected $end in Command line code on line 1

En français, ça signifie grossièrement: "Erreur d'analyse du code: il y a une erreur de syntaxe, fin de code inattendue".



Qu'est-ce qui provoque cette erreur?


En fait, cette erreur signifie que Php a fini d'analyser votre code, mais que vous avez oublié de fermer un symbole quelque part dans votre page ou dans celles qui ont été incluses.
Concrètement cela arrive quand:
  • Vous avez par exemple oublié de fermer un guillemet, donc Php continue d'analyser votre code jusqu'à ce qu'il trouve le guillemet fermant, qu'il ne trouve pas...
  • Vous avez oublié de fermer une accolade, donc à partir de la dernière accolade ouvrante, Php considère tout le code qui suit comme faisant partie d'un bloc qui ne se termine jamais...
  • Vous avez oublié de fermer une parenthèse, donc à partir de la dernière parenthèse ouvrante, Php considère tout le code qui suit comme faisant partie d'un même bloc spécifique (condition, arguments de fonctions etc...) qui ne se termine pas.
  • Vous avez oublié un point virgule, donc pour Php, il y a une instruction dans votre code qui ne possède pas de fin.


Par conséquent, inutile de se référer à la ligne signalée par Php comme étant l'origine de l'erreur. Php vous dira que le problème vient de la dernière ligne, alors que l'origine peut être située un peu n'importe où dans la page concernée ou dans les pages qui y sont incluses.

Exemples de codes qui provoquent cette erreur


Voici quelques exemples de codes qui sont susceptibles de provoquer cette erreur.

Oubli de l'accolade fermante:
<?
if ($condition){
     echo "vrai";
?>

Oubli de fermer un guillemet:
<?
echo "test;
?>

Oubli de fermer une parenthèse:
<?
mysql_query("gnagnagna", "pouet", "cecinestpasunserveursql.com" ;
?>

Oubli d'un point virgule:
<?
if ($test){
    echo '1'
}
?>

Comment corriger / éviter cette erreur


Ceci vient bien souvent du fait que l'on organise mal la présentation de son code. Surtout pensez à bien indenter votre code, à bien distinguer visuellement les différents blocs.

Exemple d'un code propre:
//Equivalent de array_reverse()
function inverse_tableau($tableau)
{
    $ret = array();
    if (is_array($tableau) ){
        for($i=sizeof($tableau) - 1; $i >= 0; $i++)
        {
            $ret[] = $tableau[$i];
        }
    }
    return $ret;
}

Exemple d'un code non indenté, plus difficile à débugger:
function inverse_tableau($tableau)
{
$ret = array();
if (is_array($tableau) ){
for($i=sizeof($tableau) - 1; $i >= 0; $i++)
{
$ret[] = $tableau[$i];
}
}
return $ret;
}

Si vous rencontrez cette erreur, sachez qu'elle ne se situe pas nécessairement à la fin de votre code, par exemple l'oubli d'une accolade peut se situer tout au début de votre code, même si votre fichier fait 1000 lignes.

Bon courage!
Parse error: syntax error, unexpected T_CONST (Résolu) Voila j'ai un souci, j'ai un message d'erreur qui est : Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home.25/m/e/r/merloene/www/gestion/mail.php on line 61 et ma ligne 61, correspond a mon premier echo ! mais je... www.commentcamarche.net/forum/affich-3642180-parse-error-syntax-error-unexpected-t-const
Parse error: syntax error, unexpected T_STRIN (Résolu) Bonjour je cherche à rendre la validation de mon formulaire oppérationelle mais chaque fois que je veux valider je tombe sur ce message : Parse error: syntax error, unexpected T_STRING in /home4/l/lecabaretinsolit/www/formulaire/nadform.php3 on line... www.commentcamarche.net/forum/affich-2678688-parse-error-syntax-error-unexpected-t-strin
Parse error: syntax error,unexpected T_STRING (Résolu) Bonjour, j'ai un probleme avec ce message d'erreur, j'ai bien regardé et je vois pas où se trouve mon erreur, si vous pouvez m'aider s'il vous plait ! Le message complet : Parse error: syntax error, unexpected T_STRING in... www.commentcamarche.net/forum/affich-5848295-parse-error-syntax-error-unexpected-t-string
PHP Parse error: unexpected '<' in ... eval()'d code on line Symptômes Lors de l'utilisation de la fonction eval() en PHP, ce dernier se plaint et vous affiche un message de la forme suivante : PHP Parse error: syntax error, unexpected ' www.commentcamarche.net/faq/sujet-9977-php-parse-error-unexpected-in-eval-d-code-on-line
[PHP] Parse error, unexpected T_STRING, expecting ',' or ';'Cette erreur, fréquente, se produit notamment lorsqu'un guillemet est présent dans une chaîne délimitée par ce même type de guillemets, par exemple : www.commentcamarche.net/faq/sujet-869-php-parse-error-unexpected-t-string-expecting-or
Parse error: syntax error, unexpected T_CONST (Résolu)Bonjour, J'ai un petit soucis avec une erreur SUr une de mes page. voici l'erreur: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /www/sites/1/ifrance.com/l/a/lacandeliere/site/affserie.php on line 21 et voici les lignes... www.commentcamarche.net/forum/affich-6496031-parse-error-syntax-error-unexpected-t-const
Parse error: syntax error, unexpected $end in (Résolu)Bonjour, en éssayant d'éxécuter de moceau de code , j'obtiens cette erreur : Parse error: syntax error, unexpected $end in c:\program_files\wamp\www\require()\page.inc on line 147 mon code se termine à la ligne 143 !!!! c'est ce que... www.commentcamarche.net/forum/affich-6987074-parse-error-syntax-error-unexpected-end-in
PhP/MySQL: Parse error: syntax error, unexpec (Résolu)Bonjour, J'ai créé une base de données de type MySQL avec une table PRODUIT. Lorsque je souhaite récupérer des informations sur la base de données à l'aide de mysql_fetch_array, il y a une erreur: Parse error: syntax error, unexpected... www.commentcamarche.net/forum/affich-6808917-php-mysql-parse-error-syntax-error-unexpec