Eléphant du PHP |
123 Messages
03 juin 2010, 10:49
est ce que je peux avoir un peu plus de detail je ne comprends pas ce que fais realpath en lisant
j etais parti sur autre chose mais la recursivité echoue au deuxieme niveau avec les sous fichier a cause de la fonction qui ne compare par la chaine mais les caractere de la chaine sinon ça marcherais
function PrepareTOCData ($source, $types){
global $docsTOC;
$debutchemin='^';
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);
foreach ($iterator as $file) {
if ($file->isFile())
{
/* Comme $file n'est pas forcément un fichier on a besoin de le tester
si s'en est un on se contente de tester si l'extension de ce fichier est dans le tableau des extensions autorisées.
*/
if (in_array ( pathinfo($file, PATHINFO_EXTENSION), $types) ) {
if (strpbrk($file->getPathname(), $debutchemin))
{
// On construit $docsTOC "normalement"
$docsTOC[] = array(
'Label' => $file->getBasename(),
'ObjectType' => 'Document',
'LIBELLE' => $file->getBasename(),
'FILENAME' => $debutchemin.'\\'.$file->getBasename(),
'REF' => '-',
'INDMAJ' => '',
'INDMIN' => '',
'DATEVERSION' => date("d/m/Y", $file->getMTime() )
);
}
}
}
else
{
if (strpbrk($file->getPathname(),$debutchemin))
{
echo "a ";
$debutchemin=$debutchemin.'\\'.$file->getBasename();
echo $debutchemin." ";
}
else
{
echo"b ";
$debutchemin=$file->getBasename();
echo $debutchemin." ";
}
//on rentre le dossier dans le tableau aussi en enlevant quelques infos
$docsTOC[] = array(
'Label' => $file->getBasename(),
'ObjectType' => 'Dossier',
'LIBELLE' => $file->getBasename(),
'FILENAME' => '',
'REF' => '-',
'INDMAJ' => '',
'INDMIN' => '',
'DATEVERSION' => '');
}
}
return true;
}
je manque de remplacant qui marche de strpbrk