[php] probleme de creation de galerie d'image

Résolu/Fermé
neo2099 Messages postés 164 Date d'inscription vendredi 13 avril 2007 Statut Membre Dernière intervention 9 avril 2020 - 26 août 2007 à 01:09
neo2099 Messages postés 164 Date d'inscription vendredi 13 avril 2007 Statut Membre Dernière intervention 9 avril 2020 - 26 août 2007 à 01:48
Bonjour,

Voila je suis en train de creer une galerie d'image pour afficher sur mon site donc j'ai fait un code, il creer les miniature de mes images puis les affiches et quand on clique dessus, il l'est affiche en grandeur nature, j'ai donc voulu l'automatisé (pour pas me casser les fesses...lol) mais le probleme c'est que au lieu d'aller le chercher dans le fichier le programme va chercher partout ailleurs sauf dans celui que je veux et m'affiche que des erreur, comme ci-dessous :

Warning: getimagesize(EasyPHP1-8/www/Image/): failed to open stream: No such file or directory in m:\easyphp1-8\www\image.php on line 39

Donc voici mon code :

<?php
//error_reporting(E_ALL | E_STRICT);

define ("NBRE_COLONNES", 4);

$types_ok = array ('image/jpeg', 'image/gif', 'image/png');
$tabl_exclus = array ('.', '..', 'miniature');
$tabl_liens = array();
$dir = "/EasyPHP1-8/www/Image/";
// Parcours le répertoire courant et tout ses sous-répertoires récursivement.

function liste_repertoire($dir) {
if ($handle = opendir($dir)) {
while (($file = readdir($handle)) !== false) {
$chemin_fichier = $dir.'/'.$file;
if (is_dir($chemin_fichier)) {
if (!in_array($file, $GLOBALS['tabl_exclus'])) {
liste_repertoire($dir.'/'.$file);
}
} else {

if (est_image($chemin_fichier)) {
$chemin_miniature = $dir.'/miniature/'.$file;
if (!file_exists($chemin_miniature)) {
genere_miniature($dir, $chemin_fichier, $chemin_miniature);
}
ajoute_lien($chemin_fichier, $chemin_miniature, $file);
}
}
}
echo $dir;
echo $chemin_fichier;
closedir($handle);
}
}

// Teste si le fichier passé en paramètre correspond à l'un des trois type d'image défini
function est_image($chemin_fichier) {
if (list($GLOBALS['largeur'], $GLOBALS['hauteur'], $type) = getimagesize("EasyPHP1-8/www/Image/")) {
$type = image_type_to_mime_type($type);
if (in_array($type, $GLOBALS['types_ok'])) {
$ext = explode("/", $type);
$GLOBALS['extension'] = $ext[1];
return true;
}
}
return false;
}

// Génère la miniature de l'image dans le sous-répertoire 'miniature' si elle n'existe pas déjà
function genere_miniature($dir, $chemin_image, $chemin_miniature) {
// Calcul du ratio entre la grande image et la miniature
$taille_max = 100;
if ($GLOBALS['largeur'] <= $GLOBALS['hauteur']) {
$ratio = $GLOBALS['hauteur'] / $taille_max;
} else {
$ratio = $GLOBALS['largeur'] / $taille_max;
}

// Définition des dimensions de la miniature
$larg_miniature = $GLOBALS['largeur'] / $ratio;
$haut_miniature = $GLOBALS['hauteur'] / $ratio;

// Crée la ressource image pour la miniature
$destination = imagecreatetruecolor($larg_miniature, $haut_miniature);

// Retourne un identifiant d'image jpeg, gif ou png
$source = call_user_func('imagecreatefrom'.$GLOBALS['extension'], $chemin_image);

// Redimensionne la grande image
imagecopyresampled( $destination,
$source,
0, 0, 0, 0,
$larg_miniature,
$haut_miniature,
$GLOBALS['largeur'],
$GLOBALS['hauteur']);

// Si le répertoire de miniature n'existe pas, on le crée
if (!is_dir($dir.'/miniature')) {
mkdir ($dir.'/miniature', 0700);
}

// Ecriture physique de l'image
call_user_func('image'.$GLOBALS['extension'], $destination, $chemin_miniature);

// Détruit les ressources temporaires crées
imagedestroy($destination);
imagedestroy($source);
}

// Crée le lien dans le tableau global
function ajoute_lien($chemin_image, $chemin_miniature, $file) {
// Récupère la taille de la miniature sous forme HTML (width="xxx" height="yyy")
$taille_html_miniature = getimagesize($chemin_miniature);
$taille_html_miniature = $taille_html_miniature[3];

// Rajoute le lien vers l'image au tableau global $GLOBALS['tabl_liens']
$lien = '<a href="'.$chemin_image.'">';
$lien .= '<img src="'.$chemin_miniature.'" '.$taille_html_miniature.' alt="'.$file.'">';
$lien .= '</a>'."\n";

array_push($GLOBALS['tabl_liens'], $lien);
}

// Gère l'affichage du tableau $GLOBALS['tabl_liens']
function affichage() {
$compteur = 1;
foreach ($GLOBALS['tabl_liens'] as $val_lien) {
if ($compteur % NBRE_COLONNES == 1) {
echo '<br>';
}
echo $val_lien;
$compteur++;
}
}
?>

<html>
<head>
<title>Affichage images</title>
<style type="text/css">
<!--
a img {
border-color:transparent;
}
-->
</style>
</head>
<body>
<?php
liste_repertoire('.');
affichage();
?>
</body>
</html>

Je sais que c'est une plaie a lire un code long, mais aidez-moi svp

En vous remercient.

1 réponse

neo2099 Messages postés 164 Date d'inscription vendredi 13 avril 2007 Statut Membre Dernière intervention 9 avril 2020 12
26 août 2007 à 01:48
Probleme résolu, il fallait que mon fichier soit dans le meme repertoire sa aide a force de chercher comme un malade
-1