Page 1 sur 1
lister le contenu d'un dossier dans un fichier texte
Posté : 26 mai 2010, 14:39
par sebnormal
bonjour,
je débute avec Php et je suis très pressé pour cette page... donc je n'ai pas trop le temps de passer mon temps là dessus.
j'ai regardé des script a droite a gauche (script d'écriture dans un fichier texte, script de listing ...) j'ai essayé de les agencer mais rien n'y fait ...
en tout cas voilà mon problème
j'ai un listing automatique de mes dossier et sous dossier en php
http://www.philscrotum.org/~mp3
j'ai aussi un lecteur flash qui prend en variable le contenu d'un fichier texte. celui ci :
http://resources.neolao.com/download/fl ... multi.html
ce que je souhaiterais donc c'est lister le nom des fichiers mp3 dans un fichier texte pour chaque dossier, chaque nom étant séparé par un "|".
ca a l'air pourtant simple non?
seb
Re: lister le contenu d'un dossier dans un fichier texte
Posté : 26 mai 2010, 14:44
par stealth35
Re: lister le contenu d'un dossier dans un fichier texte
Posté : 26 mai 2010, 14:55
par sebnormal
merci...
mais justement ce que je disais c'est je n'arrive pas a agencer toute les fonctions ... entre celles qui liste le contenu des dossiers :
Code : Tout sélectionner
<?
/*
Directory Listing Script - Version 2
====================================
Script Author: Ash Young <[email protected]>. www.evoluted.net
Layout: Manny <[email protected]>. www.tenka.co.uk
*/
$startdir = '.';
/*
Show Thumbnails? - Set to true if you wish to use the
scripts auto-thumbnail generation capabilities.
This requires that GD2 is installed.
*/
$showthumbnails = true;
/*
Show Directories - Do you want to make subdirectories available?
If not set this to false
*/
$showdirs = true;
/*
Force downloads - Do you want to force people to download the files
rather than viewing them in their browser?
*/
$forcedownloads = false;
/*
Hide Files - If you wish to hide certain files or directories
then enter their details here. The values entered are matched
against the file/directory names. If any part of the name
matches what is entered below then it is now shown.
*/
$hide = array(
'dlf',
'index.php',
'Thumbs',
'.htaccess',
'.htpasswd'
);
/*
Show index files - if an index file is found in a directory
to you want to display that rather than the listing output
from this script?
*/
$displayindex = false;
/*
Allow uploads? - If enabled users will be able to upload
files to any viewable directory. You should really only enable
this if the area this script is in is already password protected.
*/
$allowuploads = false;
/*
Overwrite files - If a user uploads a file with the same
name as an existing file do you want the existing file
to be overwritten?
*/
$overwrite = false;
/*
Index files - The follow array contains all the index files
that will be used if $displayindex (above) is set to true.
Feel free to add, delete or alter these
*/
$indexfiles = array (
'index.html',
'index.htm',
'default.htm',
'default.html'
);
/*
File Icons - If you want to add your own special file icons use
this section below. Each entry relates to the extension of the
given file, in the form <extension> => <filename>.
These files must be located within the dlf directory.
*/
$filetypes = array (
'mp3' => 'mp3.png',
'png' => 'jpg.gif',
'jpeg' => 'jpg.gif',
'bmp' => 'jpg.gif',
'jpg' => 'jpg.gif',
'gif' => 'gif.gif',
'zip' => 'archive.png',
'rar' => 'archive.png',
'exe' => 'exe.gif',
'setup' => 'setup.gif',
'txt' => 'text.png',
'htm' => 'html.gif',
'html' => 'html.gif',
'fla' => 'fla.gif',
'swf' => 'swf.gif',
'xls' => 'xls.gif',
'doc' => 'doc.gif',
'sig' => 'sig.gif',
'fh10' => 'fh10.gif',
'pdf' => 'pdf.gif',
'psd' => 'psd.gif',
'rm' => 'real.gif',
'mpg' => 'video.gif',
'mpeg' => 'video.gif',
'mov' => 'video2.gif',
'avi' => 'video.gif',
'eps' => 'eps.gif',
'gz' => 'archive.png',
'asc' => 'sig.gif',
);
/*
That's it! You are now ready to upload this script to the server.
Only edit what is below this line if you are sure that you know what you
are doing!
*/
error_reporting(0);
if(!function_exists('imagecreatetruecolor')) $showthumbnails = false;
$leadon = $startdir;
if($leadon=='.') $leadon = '';
if((substr($leadon, -1, 1)!='/') && $leadon!='') $leadon = $leadon . '/';
$startdir = $leadon;
if($_GET['dir']) {
//check this is okay.
if(substr($_GET['dir'], -1, 1)!='/') {
$_GET['dir'] = $_GET['dir'] . '/';
}
$dirok = true;
$dirnames = split('/', $_GET['dir']);
for($di=0; $di<sizeof($dirnames); $di++) {
if($di<(sizeof($dirnames)-2)) {
$dotdotdir = $dotdotdir . $dirnames[$di] . '/';
}
if($dirnames[$di] == '..') {
$dirok = false;
}
}
if(substr($_GET['dir'], 0, 1)=='/') {
$dirok = false;
}
if($dirok) {
$leadon = $leadon . $_GET['dir'];
}
}
if($_GET['download'] && $forcedownloads) {
$file = str_replace('/', '', $_GET['download']);
$file = str_replace('..', '', $file);
if(file_exists($leadon . $file)) {
header("Content-type: application/x-download");
header("Content-Length: ".filesize($leadon . $file));
header('Content-Disposition: attachment; filename="'.$file.'"');
readfile($leadon . $file);
die();
}
}
if($allowuploads && $_FILES['file']) {
$upload = true;
if(!$overwrite) {
if(file_exists($leadon.$_FILES['file']['name'])) {
$upload = false;
}
}
if($upload) {
move_uploaded_file($_FILES['file']['tmp_name'], $leadon . $_FILES['file']['name']);
}
}
$opendir = $leadon;
if(!$leadon) $opendir = '.';
if(!file_exists($opendir)) {
$opendir = '.';
$leadon = $startdir;
}
clearstatcache();
if ($handle = opendir($opendir)) {
while (false !== ($file = readdir($handle))) {
//first see if this file is required in the listing
if ($file == "." || $file == "..") continue;
$discard = false;
for($hi=0;$hi<sizeof($hide);$hi++) {
if(strpos($file, $hide[$hi])!==false) {
$discard = true;
}
}
if($discard) continue;
if (@filetype($leadon.$file) == "dir") {
if(!$showdirs) continue;
$n++;
if($_GET['sort']=="date") {
$key = @filemtime($leadon.$file) . ".$n";
}
else {
$key = $n;
}
$dirs[$key] = $file . "/";
}
else {
$n++;
if($_GET['sort']=="date") {
$key = @filemtime($leadon.$file) . ".$n";
}
elseif($_GET['sort']=="size") {
$key = @filesize($leadon.$file) . ".$n";
}
else {
$key = $n;
}
$files[$key] = $file;
if($displayindex) {
if(in_array(strtolower($file), $indexfiles)) {
header("Location: $file");
die();
}
}
}
}
closedir($handle);
}
//sort our files
if($_GET['sort']=="date") {
@ksort($dirs, SORT_NUMERIC);
@ksort($files, SORT_NUMERIC);
}
elseif($_GET['sort']=="size") {
@natcasesort($dirs);
@ksort($files, SORT_NUMERIC);
}
else {
@natcasesort($dirs);
@natcasesort($files);
}
//order correctly
if($_GET['order']=="desc" && $_GET['sort']!="size") {$dirs = @array_reverse($dirs);}
if($_GET['order']=="desc") {$files = @array_reverse($files);}
$dirs = @array_values($dirs); $files = @array_values($files);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Directory Listing of <?=dirname($_SERVER['PHP_SELF']).'/'.$leadon;?></title>
<link rel="stylesheet" type="text/css" href="dlf/styles.css" />
<link rel="stylesheet" type="text/css" href="../squelettes/phil.css" />
<?
if($showthumbnails) {
?>
<script language="javascript" type="text/javascript">
<!--
function o(n, i) {
document.images['thumb'+n].src = 'dlf/i.php?f='+i;
}
function f(n) {
document.images['thumb'+n].src = 'dlf/trans.gif';
}
//-->
</script>
<?
}
?>
</head>
<body>
<div id="#container">
<div id=""> <a href="<?=$_SERVER['PHP_SELF'];?>">Listen/download</a>
<?
$breadcrumbs = split('/', $leadon);
if(($bsize = sizeof($breadcrumbs))>0) {
$sofar = '';
for($bi=0;$bi<($bsize-1);$bi++) {
$sofar = $sofar . $breadcrumbs[$bi] . '/';
echo ' > <a href="'.$_SERVER['PHP_SELF'].'?dir='.urlencode($sofar).'">'.$breadcrumbs[$bi].'</a>';
}
}
$baseurl = $_SERVER['PHP_SELF'] . '?dir='.$_GET['dir'] . '&';
$fileurl = 'sort=name&order=asc';
$sizeurl = 'sort=size&order=asc';
$dateurl = 'sort=date&order=asc';
switch ($_GET['sort']) {
case 'name':
if($_GET['order']=='asc') $fileurl = 'sort=name&order=desc';
break;
case 'size':
if($_GET['order']=='asc') $sizeurl = 'sort=size&order=desc';
break;
case 'date':
if($_GET['order']=='asc') $dateurl = 'sort=date&order=desc';
break;
default:
$fileurl = 'sort=name&order=desc';
break;
}
?>
</div>
<div id="listingcontainer" class="100pour100">
<div id="listingheader" class="100pour100">
<div id="headerfile"><a href="<?=$baseurl . $fileurl;?>">File</a></div>
<div id="headersize"><a href="<?=$baseurl . $sizeurl;?>">Size</a></div>
<div id="headermodified"><a href="<?=$baseurl . $dateurl;?>">Last Modified</a></div>
</div>
<div id="listing" class="">
<?
$class = 'b';
if($dirok) {
?>
<div class="" ><a href="<?=$_SERVER['PHP_SELF'].'?dir='.urlencode($dotdotdir);?>" class="<?=$class;?>"><img src="dlf/dirup.png" alt="Folder" /><strong>..</strong> <em>-</em> <?=date ("M d Y h:i:s A", filemtime($dotdotdir));?></a></div>
<?
if($class=='b') $class='w';
else $class = 'b';
}
$arsize = sizeof($dirs);
for($i=0;$i<$arsize;$i++) {
?>
<div class=""><a href="<?=$_SERVER['PHP_SELF'].'?dir='.urlencode($leadon.$dirs[$i]);?>" class="<?=$class;?>"><img src="dlf/folder.png" alt="<?=$dirs[$i];?>" /><strong><?=$dirs[$i];?></strong> <em>-</em> <?=date ("M d Y h:i:s A", filemtime($leadon.$dirs[$i]));?></a></div>
<?
if($class=='b') $class='w';
else $class = 'b';
}
$arsize = sizeof($files);
for($i=0;$i<$arsize;$i++) {
$icon = 'unknown.png';
$ext = strtolower(substr($files[$i], strrpos($files[$i], '.')+1));
$supportedimages = array('gif', 'png', 'jpeg', 'jpg');
$thumb = '';
if($showthumbnails && in_array($ext, $supportedimages)) {
$thumb = '<span><img src="dlf/trans.gif" alt="'.$files[$i].'" name="thumb'.$i.'" /></span>';
$thumb2 = ' onmouseover="o('.$i.', \''.urlencode($leadon . $files[$i]).'\');" onmouseout="f('.$i.');"';
}
if($filetypes[$ext]) {
$icon = $filetypes[$ext];
}
$filename = $files[$i];
if(strlen($filename)>43) {
$filename = substr($files[$i], 0, 40) . '...';
}
$fileurl = $leadon . $files[$i];
if($forcedownloads) {
$fileurl = $_SESSION['PHP_SELF'] . '?dir=' . urlencode($leadon) . '&download=' . urlencode($files[$i]);
}
?>
<div ><a href="<?=$fileurl;?>" class="<?=$class;?>"<?=$thumb2;?>><img src="dlf/<?=$icon;?>" alt="<?=$files[$i];?>" /><strong><?=$filename;?></strong> <em><?=round(filesize($leadon.$files[$i])/1024);?>KB</em> <?=date ("M d Y h:i:s A", filemtime($leadon.$files[$i]));?><?=$thumb;?></a></div>
<?
if($class=='b') $class='w';
else $class = 'b';
}
?></div>
<?
if($allowuploads) {
$phpallowuploads = (bool) ini_get('file_uploads');
$phpmaxsize = ini_get('upload_max_filesize');
$phpmaxsize = trim($phpmaxsize);
$last = strtolower($phpmaxsize{strlen($phpmaxsize)-1});
switch($last) {
case 'g':
$phpmaxsize *= 1024;
case 'm':
$phpmaxsize *= 1024;
}
?>
<div id="upload">
<div id="uploadtitle"><strong>File Upload</strong> (Max Filesize: <?=$phpmaxsize;?>KB)</div>
<div id="uploadcontent">
<?
if($phpallowuploads) {
?>
<form method="post" action="<?=$_SERVER['PHP_SELF'];?>?dir=<?=urlencode($leadon);?>" enctype="multipart/form-data">
<input type="file" name="file" /> <input type="submit" value="Upload" />
</form>
<?
}
else {
?>
File uploads are disabled in your php.ini file. Please enable them.
<?
}
?>
</div>
</div>
<?
}
?>
</div><br />
<span class="blanc10">Directory Listing Script - Version 2 by Ash Young - www.evoluted.net</span></div>
</body>
</html>
et les script de listing puis d'ouverture et d'écriture ans un fichier texte
c'est TROOOOP compliqué ...
Re: lister le contenu d'un dossier dans un fichier texte
Posté : 26 mai 2010, 14:59
par stealth35
ca serais plus simple de repartir de zero et de le faire toi même, parce que 500 lignes pour ca...
Re: lister le contenu d'un dossier dans un fichier texte
Posté : 26 mai 2010, 15:03
par sebnormal
non non c'est pas 500 ligne pour ca uniquement !!!
ce script de listing est vraiment bien. je veux le garder. je le met a la racine d'un répertoire (ici ~mp3) et lorsqu'il y'aura 40 sous dossier et 200 fichiers ca sera très bien.
je souhaite que sur chaque page des dossiers il y ait la liste de ces fichiers et a côté le lecteur flash qui reprenne la liste des fichier
je pense donc qu'il n'y a que quelques ligne de scritp a rajouter mais je ne vois pas comment faire
Re: lister le contenu d'un dossier dans un fichier texte
Posté : 26 mai 2010, 17:01
par mere-teresa
ce script de listing est vraiment bien. je veux le garder.
Pourquoi ?
Re: lister le contenu d'un dossier dans un fichier texte
Posté : 29 mai 2010, 19:10
par sebnormal
ben parceque ce script me permet déjà de lister ce que contient mon répertoire et mes sous répertoire...
mais bon, donc personne n'a une idée de comment écrire dans un fichier txt le contenu d'un dossier?
Re: lister le contenu d'un dossier dans un fichier texte
Posté : 31 mai 2010, 09:51
par macgawel
ben parceque ce script me permet déjà de lister ce que contient mon répertoire et mes sous répertoire...
mais bon, donc personne n'a une idée de comment écrire dans un fichier txt le contenu d'un dossier?
Bonjour.
Si j'ai bien compris ton script (qui me semble bien complexe pour ce qu'il faut faire) tu récupères les fichiers dans ta variable $files.
Marche à suivre :
1. Créer ta chaine de caractères 'fichier1|fichier2|...'
$chaine = implode ('|', $files);
2. Ecrire le contenu de ta chaine de caractères dans un fichier texte :
file_put_contents ( $fichier, $chaine);