erreur code php

Mammouth du PHP | 620 Messages

03 janv. 2017, 16:20

Bonjour,
sur une classe qui me permet de redimenssioner mes images j'ai une erreur php
Parse error: syntax error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/htdocs/promotions/imgClass.php on line 3
la ligne 3 est :

Code : Tout sélectionner

static function creerMin($img,$chemin,$nom,$mlargeur=100,$mhauteur=100){
je n'y voie pas d'erreur...

le code complet de la classe est :

Code : Tout sélectionner

<?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; } } ?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

03 janv. 2017, 16:25

salut,

syntaxiquement c'est correct.
quel est ta version de PHP ?


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 620 Messages

03 janv. 2017, 16:29

je suis en PHP 5.6

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

03 janv. 2017, 18:03

le seul truc qui vois qui pourrait manquer c'est le mot clef indiquant la visibilité devant static (public | protected | private)
ceci dit il est facultatif et fait que la méthode est publique par défaut.

regarde si tu n'as pas de caractère invisible qu traîne avant le mot clef static

si tu vire tout et créé une classe vide, ça fonctionne ?
ensuite ajoute a la main (pas de copier collé) les méthodes (d'abord la structure puis le contenu etc.).

@+
Il en faut peu pour être heureux ......