Bonjour,
voila j'ai telecharger le code source https://www.grafikart.fr/tutoriels/php/gestion-images-php-52
Voila je rencontre un petit problème avec mon code.
Parse error: parse error, expecting T_OLD_FUNCTION' orT_FUNCTION' or T_VAR' or'}'' in c:\easyphp1-8\www\uplod\imgClass.php on line 5

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire

Entourez votre code avec ce symbole ```

Ce que je veux

Décrivez ici ce que vous cherchez à obtenir

Ce que j'obtiens

Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(

12 réponses


Bonjour,

A quoi correspond la ligne 5 ? Sans le code, on ne pourra pas deviner.

merci
la ligne 5 correspant au fichier imgClass.php
la ligne ou il y a erreur : static function creerMin($img,$chemin,$nom,$mlargeur=100,$mhauteur=100){

le code complet sur le fichier image class dans le comentaire de cette video

https://www.grafikart.fr/tutoriels/php/gestion-images-php-52

Je suppose que ça provient de la fonction juste avant : il doit manquer ou y avoir un } en trop.

<?php

class Img{

  static function creerMin($img,$chemin,$nom,$mlargeur=100,$mhauteur=100){
        // On supprime l'extension du nom
        $nom = substr($nom,0,-4);
        // On récupère les dimensions de l'image
        $dimension=getimagesize($img);
        // On cré une image à partir du fichier récup
        if(substr(strtolower($img),-4)==".jpg"){$image = imagecreatefromjpeg($img); }
        else if(substr(strtolower($img),-4)==".png"){$image = imagecreatefrompng($img); }
        else if(substr(strtolower($img),-4)==".gif"){$image = imagecreatefromgif($img); }
        // L'image ne peut etre redimensionne
        else{return false; }

        // Création des miniatures
        // On cré une image vide de la largeur et hauteur voulue
        $miniature =imagecreatetruecolor ($mlargeur,$mhauteur); 
        // On va gérer la position et le redimensionnement de la grande image
        if($dimension[0]>($mlargeur/$mhauteur)*$dimension[1] ){ $dimY=$mhauteur; $dimX=$mhauteur*$dimension[0]/$dimension[1]; $decalX=-($dimX-$mlargeur)/2; $decalY=0;}
        if($dimension[0]<($mlargeur/$mhauteur)*$dimension[1]){ $dimX=$mlargeur; $dimY=$mlargeur*$dimension[1]/$dimension[0]; $decalY=-($dimY-$mhauteur)/2; $decalX=0;}
        if($dimension[0]==($mlargeur/$mhauteur)*$dimension[1]){ $dimX=$mlargeur; $dimY=$mhauteur; $decalX=0; $decalY=0;}
        // on modifie l'image crée en y plaçant la grande image redimensionné et décalée
        imagecopyresampled($miniature,$image,$decalX,$decalY,0,0,$dimX,$dimY,$dimension[0],$dimension[1]);
        // On sauvegarde le tout
        imagejpeg($miniature,$chemin."/".$nom.".jpg",90);
        return true;
    }

    static function convertirJPG($img){
        // On cré une image à partir du fichier récup
        if(substr(strtolower($img),-4)==".jpg"){$image = imagecreatefromjpeg($img); }
        else if(substr(strtolower($img),-4)==".png"){$image = imagecreatefrompng($img); }
        else if(substr(strtolower($img),-4)==".gif"){$image = imagecreatefromgif($img); }
        // L'image ne peut etre redimensionne
        else{return false; }
        unlink($img);
        imagejpeg($image,substr($img,0,-3)."jpg",90);   
        return true;

    }
}

?>

Tu tournes sur quelle version de PHP ?

bonjour
c'est PHP Version 5.6.19
mais il me dis l'erreur est sur la ligne 5 : Parse error: syntax error, unexpected '{', expecting function (T_FUNCTION) in C:\EasyPHP-Devserver-16.1\eds-www\uplod\imgClass.php on line 5

et qui correspand a ce code : static function creerMin($img,$chemin,$nom,$mlargeur=100,$mhauteur=100){
mais j'arrive pas a trouvé ?
le code entier :

<?phparoundaroundclass Img{aroundaroundaround  static function creerMin($img,$chemin,$nom,$mlargeur=100,$mhauteur=100){around        // On supprime l'extension du nomaround        $nom = substr($nom,0,-4);around        // On récupère les dimensions de l'imagearound        $dimension=getimagesize($img);around        // On cré une image à partir du fichier récuparound        if(substr(strtolower($img),-4)==".jpg"){$image = imagecreatefromjpeg($img); }around        else if(substr(strtolower($img),-4)==".png"){$image = imagecreatefrompng($img); }around        else if(substr(strtolower($img),-4)==".gif"){$image = imagecreatefromgif($img); }around        // L'image ne peut etre redimensionnearound        else{return false; }aroundaround        // Création des miniaturesaround        // On cré une image vide de la largeur et hauteur vouluearound        $miniature =imagecreatetruecolor ($mlargeur,$mhauteur); around        // On va gérer la position et le redimensionnement de la grande imagearound        if($dimension[0]>($mlargeur/$mhauteur)*$dimension[1] ){ $dimY=$mhauteur; $dimX=$mhauteur*$dimension[0]/$dimension[1]; $decalX=-($dimX-$mlargeur)/2; $decalY=0;}around        if($dimension[0]<($mlargeur/$mhauteur)*$dimension[1]){ $dimX=$mlargeur; $dimY=$mlargeur*$dimension[1]/$dimension[0]; $decalY=-($dimY-$mhauteur)/2; $decalX=0;}around        if($dimension[0]==($mlargeur/$mhauteur)*$dimension[1]){ $dimX=$mlargeur; $dimY=$mhauteur; $decalX=0; $decalY=0;}around        // on modifie l'image crée en y plaçant la grande image redimensionné et décaléearound        imagecopyresampled($miniature,$image,$decalX,$decalY,0,0,$dimX,$dimY,$dimension[0],$dimension[1]);around        // On sauvegarde le toutaround        imagejpeg($miniature,$chemin."/".$nom.".jpg",90);around        return true;around    }aroundaroundaround    static function convertirJPG($img){around        // On cré une image à partir du fichier récuparound        if(substr(strtolower($img),-4)==".jpg"){$image = imagecreatefromjpeg($img); }around        else if(substr(strtolower($img),-4)==".png"){$image = imagecreatefrompng($img); }around        else if(substr(strtolower($img),-4)==".gif"){$image = imagecreatefromgif($img); }around        // L'image ne peut etre redimensionnearound        else{return false; }around        unlink($img);around        imagejpeg($image,substr($img,0,-3)."jpg",90);   around        return true;aroundaround    }around}aroundaround?>around

Cela ne veux pas dire que l'erreur viens de cette ligne exactement.

Il nous faudrait le code où vous appellez cette fonction.

voila le code qui fait appellé la fonction index.php
<?php```



if(!empty($_FILES)){
    require("imgClass.php");
    $img = $_FILES['img'];
    $ext = strtolower(substr($img['name'],-3));
    $allow_ext = array("jpg",'png','gif');
    if(in_array($ext,$allow_ext)){
        move_uploaded_file($img['tmp_name'],"images/".$img['name']);
        Img::creerMin("images/".$img['name'],"images/min",$img['name'],215,112);
        Img::convertirJPG("images/".$img['name']);
    }
    else{
        $erreur = "Votre fichier n'est pas une image";
    }

}

?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<script type="text/javascript" src="zoombox/jquery.js"></script>
<script type="text/javascript" src="zoombox/zoombox.js"></script> 
<link rel="stylesheet" type="text/css" href="theme/style.css" /> 
<link href="zoombox/zoombox.css" rel="stylesheet" type="text/css" media="screen" />
</head>

<body>
<?php
if(isset($erreur)){
    echo $erreur;
}

?>
<form method="post" action="index.php" enctype="multipart/form-data">
<input type="file" name="img"/>
<input type="submit" name="Envoyer"/>
</form>

<?php
$dos = "images/min";
$dir = opendir($dos);
while($file = readdir($dir)){
    $allow_ext = array("jpg",'png','gif');
    $ext = strtolower(substr($file,-3));
    if(in_array($ext,$allow_ext)){
        ?>
        <div class="min">
        <a href="images/<?php echo $file; ?>" rel="zoombox[galerie]">
        <img src="images/min/<?php echo $file; ?>"/>
        <h3><?php echo $file; ?></h3>
        </a>
        </div>
        <?php
    }
}
?>
</body>

</html>

Je ne vois pas non plus d'erreur.
Il vous reste plus qu'à tester ligne par ligne la class et voir où cela plante.

Je suis curieux de savoir tu as juste telechargé betement les fichiers ou tu as fait le tutos ?

parce que si tu réécris le tuto tu vois le moment ou ca pose problème la pour moi tu as telechargé le truc et tu nous demande sans avoir pris la peine de faire le tuto !!!!

On est pas la pour expliqué au gens le tuto et les sources sont un gain de temps une fois le tutos fait.

Bon courage

j'ai suivis le tutorial de début a la fim ca n'a pas marche j'avais la meme erreur . et le tutorials je les suivi a partir youtube et si je me suis abonne sur ce site pour voir plus
merci

je suis le seul que ca interpelle la version easyphp1-8 ??? parce que en DEV on est a la 16 ?