| 
<?php
define('ISO_LIB_PATH', '/data/ftp/autre/php_iso_lib/classes/');
 
 include_once (ISO_LIB_PATH . 'iso_includes.php');
 
 system('clear');
 
 function EchoFDD(&$fileDirDesc, $tab)
 {
 if(!$fileDirDesc->IsDirectory())
 return;
 
 global $isoFile;
 global $usedDesc;
 
 $tab_str = '';
 for($i = 0 ; $i < $tab ; $i++)
 $tab_str .= "\t";
 
 $extents = $fileDirDesc->LoadExtents($isoFile, $usedDesc->iBlockSize, true);
 if($extents)
 {
 foreach($extents as $extent)
 {
 if(!$extent->IsThis() && !$extent->IsParent())
 {
 if($extent->IsDirectory() === true)
 {
 echo $tab_str . '* ' . $extent->strd_FileId . "\n";
 EchoFDD($extent, $tab + 1);
 }
 else
 {
 echo $tab_str . $extent->strd_FileId . "\n";
 }
 }
 }
 }
 }
 function EchoPT(&$ptRec, $tab)
 {
 global $isoFile;
 global $usedDesc;
 
 $tab_str = '';
 for($i = 0 ; $i < $tab ; $i++)
 $tab_str .= "\t";
 
 echo $tab_str . $ptRec->strd_DirId . "\n";
 $tab_str .= "\t";
 
 $extents = $ptRec->LoadExtents($isoFile, $usedDesc->iBlockSize, true);
 if($extents)
 {
 foreach($extents as $extent)
 {
 if(!$extent->IsThis() && !$extent->IsParent())
 {
 if($extent->IsDirectory() === true)
 {
 echo $tab_str . '* ' . $extent->strd_FileId . "\n";
 EchoFDD($extent, $tab + 1);
 }
 else
 {
 echo $tab_str . $extent->strd_FileId . "\n";
 }
 }
 }
 }
 }
 
 $isoFile = new CISOFile();
 if(!$isoFile->Open('../isos/debian-live-6.0.1-i386-kde-desktop.iso') || !$isoFile->ISOInit())
 {
 die('Une erreur est survenue lors de l\'ouverture du fichier ISO...' . "\n");
 }
 else
 {
 $usedDesc = $isoFile->GetDescriptor(SUPPLEMENTARY_VOLUME_DESC);
 if(!$usedDesc) {
 
 $usedDesc = $isoFile->GetDescriptor(PRIMARY_VOLUME_DESC);
 if(!$usedDesc) {
 
 die('Pas de "Primary" ou "supplementary" descriptor trouvés...' . "\n");
 }
 }
 
 echo 'Affichage en liste (l, défaut) ou en arbre (a): ';
 $sel = trim(strtolower(fgets(STDIN)));
 if($sel == 'a')
 {
 $pathTable = $usedDesc->LoadMPathTable($isoFile);
 foreach($pathTable as $ptRec)
 {
 if($ptRec->ParentDirNum == 1)
 {
 EchoPT($ptRec, 0);
 }
 }
 }
 else
 {
 $pathTable = $usedDesc->LoadMPathTable($isoFile);
 foreach($pathTable as $ptRec)
 {
 $fPath = $ptRec->GetFullPath($pathTable, $dbg);
 echo 'Nom: ' . $ptRec->strd_DirId . "\n";
 echo "\t" . 'Chemin: ' . $fPath . "\n";
 echo "\t" . 'Position: ' . $ptRec->Location . ' (LBA)' . "\n";
 echo "\t" . 'Étendu: ' . $ptRec->ExtAttrLen . ' (LBA)' . "\n";
 }
 }
 
 }
 ?>
 |