<?php
///////////////////////////////////////
function browse ($pDirectory, $pExtension)
{
if($handle = opendir($pDirectory))
{
while(false !($file readdir($handle)))
{
$getExt = explode(".", $file);
$countExt = count($getExt);
$fExt = $countExt - 1;
$myExt = $getExt[$fExt];
if (($myExt == $pExtension) && ($file != ".") && ($file != ".."))
{$files[] = $file;}
}
}
return $files;
closedir($handle);
}
/////////////////////////////////////
//Définition des fichiers à utiliser
$General = fopen ("General.html", "w");
$Hardware = fopen ("Hardware.html", "w");
$Autre = fopen ("Autre.html", "w");
//Ecriture de l'entête
$Header="<html>";
fwrite($General,$Header);
fwrite($Hardware,$Header);
fwrite($Autre,$Header);
//Définition des variables temporaires
$Categorie="";
$Avatar = "";
$Elements[]="a";
//Récupération de la liste des fichiers
$getFile = browse("Tv-flv_videos/", "flv");
//Trie des fichiers
sort($getFile);
//Parcours de la liste des fichiers
for($i=0;$i<count($getFile);$i++)
{
//Récupération des champs du fichier
$Fields=explode("_",$getFile[$i]);
//Changement de catégorie ou d'auteur ?
if($Categorie!=$Fields[0] || $Avatar!=$Fields[1])
{
//On était dans une autre catégorie?
if($Categorie!="")
{
//Ecriture dans le fichier désiré
switch($Categorie)
{
case "General":
WriteInFile($General,$Avatar,$Elements);
break;
case "Hardware":
WriteInFile($Hardware,$Avatar,$Elements);
break;
case "Autre":
WriteInFile($Autre,$Avatar,$Elements);
break;
}
}
//Réinit des variables pour le cycle suivant
unset($Elements);
$Categorie=$Fields[0];
$Avatar=$Fields[1];
//echo $Categorie ."_".$Avatar ."
";
}
//Ajout du fichier à la liste courante
$Elements[]=$getFile[$i];
//$Elements=$getFile[$i];
// echo $Elements ."
";
}
//Fin, on écrit les dernières lignes
if($Categorie!="")
{
switch($Categorie)
{
case "General":
WriteInFile($General,$Avatar,$Elements);
break;
case "Hardware":
WriteInFile($Hardware,$Avatar,$Elements);
break;
case "Autre":
WriteInFile($Autre,$Avatar,$Elements);
break;
}
}
//Fin des fichiers HTML
$Footer="</html>";
fwrite($General,$Footer);
fwrite($Hardware,$Footer);
fwrite($Autre,$Footer);
//Fermeture des fichiers
fclose ($Autre); fclose ($General); fclose ($Hardware);
//Ecriture dans un fichier
//$File, fichier cible
//$Avatar, créateur
//$Elements, liste de fichiers contenus
function WriteInFile($File,$Avatar,$Elements)
{
//Init de quelques variables locales
$Ligne1='%4$s
, , %1$s, , %2$s, , ';
$Ligne2='----
%1$s, %2$s, ';
$LigneFin="
";
//Nombre de lignes dans le tableau
$LineCount=(count($Elements)-(count($Elements)%2))/2;
if((count($Elements)%2)==1) $LineCount++;
//Parcour des lignes du tableau
for($i=0;$i<$LineCount;$i++)
{
//Modèle de la ligne
$Ligne=$Ligne2;
if($i==0)$Ligne=$Ligne1;
//Ecriture dans le fichier
if($i==$LineCount && ((count($Elements)%2)==1))
fwrite($File,sprintf($Ligne,sprintf($Ligne,$Elements($i*2),"",$LineCount,$Avatar)));
{
else
}
fwrite($File,sprintf($Ligne,sprintf($Ligne,$Elements($i*2),$Elements($i*2+1),$LineCount,$Avatar)));
//Ecriture de la ligne de fermeture du tableau
fwrite($File,$LigneFin);
}
}
?>
Je n'ai pas regardé le reste du code, peut être y a t il d'autres erreurs.
Celle là te dit que le nom d'une fonction doit être une chaîne (Elements($i*2) et non $Elements($i*2))
En l'occurence Elements est un tableau, donc :
$Elements($i*2) => $Elements[$i*2]
merci beaucoup pour l'aide
malheureusement je m'en sort pas, donc si une bonne âme peut revoir tout le code en le corrigeant, car même mes corrections sont aussi bancale que le code, je pensais pourtant y arriver grâce a l'explication de Kohntark -
Bref je vais continué a cogiter de mon coté,
encore merci pour l'explication.
Si je peux me permettre un conseil :
Tente de corriger le code toi même (comme tu le dis en fin de message) et ne demande pas que les gens le fassent à ta place ("revoir tout le code en le corrigeant") car en le formulant ainsi ça ne donne pas envie de t'aider (c'est mon cas) Par ailleurs tu y gagneras à "plonger les mains dans le cambouis"
... pas de problème à t'aider dans ce cas.