PHP syntax error, unexpected T_VARIABLE, je ne vois pas ou

alpking

Membre actif
13 Mai 2005
142
4
45
bonsoir,

j'ai dans le code suivant une erreur (Parse error: syntax error, unexpected T_VARIABLE) à l'avant dernière ligne

Bloc de code:
//Affiche le détail de l'image
					echo '<u>Détails de l\'image finale sur le serveur</u><br>';
echo '<b>Fichier :</b> ' , $nom_file, '<br />';
echo '<b>Taille :</b> ' , $size_file, ' Octets<br />';
echo '<b>Qualité :</b> ' , $quality, ' %<br />';
echo '<b>Largeur :</b> ' , $largeurDestination, ' px<br />';
echo '<b>Hauteur :</b> ' , $hauteurDestination, ' px<br />';
echo '<b>Adresse du fichier à copier dans la news : </b>',htmlspecialchars('<img src="http://www.gaptrading.ch/html/imagenews/'$_FILES['fichier']['name']'">');
echo '<hr />';

est ce que quelqu'un voit ou est l'erreur ?

Merci d'avance
 
La concat&#233;nation de cha&#238;ne de caract&#232;res se fait avec le point (.) pas la virgule &#224; ce que je sache.
 
  • J’aime
Réactions: p4bl0
La concat&#233;nation de cha&#238;ne de caract&#232;res se fait avec le point (.) pas la virgule &#224; ce que je sache.

la concat&#233;nation peut se faire via le point, via la fonction sprintf, ou via la virgule (et probablement encore d'autres facons!)
le plus commun est le point du fait qu'on ne va pas le m&#233;langer avec une succession de param&#232;tres (cas de la virgule) ou des op&#233;rations math&#233;matiques (cas du plus). mais les autres options peuvent avoir de meilleures performances selon les cas.

en l'occurence ici le pb vient surtt de l&#224; :
.../imagenews/'$_FILES...

et ici on est justement ds le cas o&#249; la concat&#233;nation par virgule est plus que foireuse!
d'o&#249; :
Bloc de code:
.../imagenews/' . $_FILES['fichier']['name'] . '" />');


EDIT : d'ailleurs je me demande si la concat&#233;nation par virgule ne serait pas permise que pour la fonction echo
EDIT2 : http://www.vulgarisation-informatique.com/optimiser-php.php pour les tests de performance
EDIT3 : vu que ca me perturbait : pour &#234;tre exact :dans echo 'aa' , 'zz'; le passage des &#233;l&#233;ments est fait par param&#232;tre, echo &#233;tant une structure du langage et non une fonction.
 
@Zeusviper : je n'ai jamais vu la virgule avec autre chose que echo mais en fait la virgule ne fait aucune concat&#233;nation, c'est justement &#231;a l'int&#233;r&#234;t de l'utiliser.

Bloc de code:
echo 'Hello '.'World!';
Ici PHP va d'abord concat&#233;ner les deux chaines enssemble puis afficher le r&#233;sultat.

Bloc de code:
echo 'Hello ','World!';
Alors que l&#224; PHP va d'abors faire echo 'Hello '; puis echo 'World!'; ce qui est parait-il plus rapide... :zen:
 
merci bp pour vos réponse, le problème de cette ligne est résolu...

mais je ne sais pas pourquoi, maintenant j'ai le problème suivant à la dernière ligne de code (qui est la suite en faite) :

Bloc de code:
					//Affiche le détail de l'image
					echo '<u>Détails de l\'image finale sur le serveur</u><br>';
					echo '<b>Fichier :</b> ' , $nom_file, '<br />';
					echo '<b>Taille :</b> ' , $size_file, ' Octets<br />';
					echo '<b>Qualité :</b> ' , $quality, ' %<br />';
					echo '<b>Largeur :</b> ' , $largeurDestination, ' px<br />';
					echo '<b>Hauteur :</b> ' , $hauteurDestination, ' px<br />';
					echo '<b>Adresse du fichier à copier dans la news : </b>' , htmlspecialchars('<img src="http://www.gaptrading.ch/html/imagenews/' . $_FILES['fichier']['name'] . '">');
					echo '<hr />';
					 
					$lien_image = $site.$nom_rep."/".$nom_file;
					echo "L'image ci-dessous a été redimentionnée et chargée sur le serveur.<br><br>";
                    //echo "Lien de l'image : ".$lien_image."<br /><br />";
                    echo "<img border='0' src='".$lien_image."'><br />";
                    
                    if($test_local == 0)
                      {
                     
                      }
                       
                } else {
                    // Sinon on affiche une erreur système
                    echo '<font color=red><b><u>ECHEC DE L\'ENVOI</u><br><br>Problème lors de l\'upload !</b><br /><br /><b>Erreur num : '$_FILES['fichier']['error'], '</b><br /><br /></font>';

Le problème est celu la : Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';'

j'ai relu mon code avec attention, mais je n'ai pas trouvé l'erreur...

quelqu'un la voit ?

merci d'avance
 
@Zeusviper : je n'ai jamais vu la virgule avec autre chose que echo mais en fait la virgule ne fait aucune concat&#233;nation, c'est justement &#231;a l'int&#233;r&#234;t de l'utiliser.

Bloc de code:
echo 'Hello '.'World!';
Ici PHP va d'abord concat&#233;ner les deux chaines enssemble puis afficher le r&#233;sultat.

Bloc de code:
echo 'Hello ','World!';
Alors que l&#224; PHP va d'abors faire echo 'Hello '; puis echo 'World!'; ce qui est parait-il plus rapide... :zen:

20/20 clair net et pr&#233;cis

la virgule n'est pas une concat&#233;nation c'est un traitement de params

:zen:

ALPKING

utilise des variables au lieu de faire echo echo echo ...
et ptain utilise les facilit&#233;s du language

http://fr2.php.net/manual/en/function.sprintf.php

tu &#233;conomiserais 80 % de ton blabla
je rappel que php empreinte sa synthaxe/philosophique au C