Visualizzare files in una cartella con titolo in base al file

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, non so come dire.. Vorrei che quando uno mette ad esempio luigi_cv.pdf e mette luigi_cv.pdf.txt e qui ci sta il titolo e con un ; si mette la descrizione.. esempio:

[PROGETTI 1] --- directory 1
gioco_dicorse.pdf
gioco_dicorse.pdf.txt -- >titolo;descrizione
[PROGETTI 2] -- directory 2
carte_da_tavolo.pdf
carte_da_tavolo.pdf.txt --> titolo;descrizione

etc

il codice che ho è questo:
PHP:
<?php

// Inseriamo il percorso della directory che vogliamo leggere

$dir = "dir/";

// Utilizziamo la funzione per vedere se la directory esiste

if (is_dir($dir)) {

// Apriamo l'oggetto dir

if ($oggetto_dir = opendir($dir)) {

// Perlustriamo l'oggetto dir sino a quando non finisce cioè diventa false

while (($file = readdir($oggetto_dir)) !== false) {

// Attraverso un if vediamo se $file è

// diverso . , da .. e da !is_dir

if ( $file != "." && $file != ".." && !is_dir($file)) {

echo $file."<br>";

}

}

// Chiudiamo l'oggetto dir

closedir($oggetto_dir);

}

}

?>

si può fare o no?

buon giornata e grazie mille.
 
L'esempio più semplice è questo:
PHP:
<?php
$files = glob(__DIR__ . '/*/*.pdf');

foreach ($files as $file) {
    $data = explode(';', file_get_contents("{$file}.txt"));
    $title = $data[0];
    $description = $data[1];

    echo "{$file} - {$title} - {$description}<br>";
}
 
L'esempio più semplice è questo:
PHP:
<?php
$files = glob(__DIR__ . '/*/*.pdf');

foreach ($files as $file) {
    $data = explode(';', file_get_contents("{$file}.txt"));
    $title = $data[0];
    $description = $data[1];

    echo "{$file} - {$title} - {$description}<br>";
}
ok, ora provo .. prima ero via e non ho potuto provare..

adesso vedo come funziona..

grazie mille.

buona giornata.
 
ok, funziona alla grande volevo chiederti una cosa..

si può recuperare solo il nome del file?

perché adesso fa cosi:
d:\xampp\htdocs\dir_pdf/SWREG-Ricevuta ordine.pdf

e vorrei solo:
SWREG-Ricevuta ordine.pdf
codice:
PHP:
<?php
$files = glob(__DIR__ . '/*.pdf');

foreach ($files as $file) {
    $data = explode(';', file_get_contents("{$file}.txt"));
    $title = $data[0];
    $description = $data[1];
	$data_registrazione = $data[2];
	?><a href="<?php echo $file; ?>"><?php echo $file; ?></a><?php
    echo " - {$title} - {$description} - {$data_registrazione} <br>";
} 

?>


ti ringrazio mille..

buona giornata.
 
Prova in questo modo (guarda anche le altre correzioni):
PHP:
<?php
$files = glob(__DIR__ . '/*.pdf');

foreach ($files as $file) {
    $fileName = basename($file);
    $data = explode(';', file_get_contents("{$file}.txt"));
    list($title, $description, $registrationDate) = $data;

    echo "<a href=\"{$fileName}\">{$file}</a> - {$title} - {$description} - {$registrationDate}<br>";
}
?>
 
ok. ha funzionato e ti ringrazio molto..

ultima cosa ancora..

come posso fare se lo script in contra una cartella..

dir-> [Progetti casa blu]
files->1.pdf,1.pdf.txt
files->2.pdf,2.pdf.txt
dir->[Progetti casa rossa]
files->10.pdf,10.pdf.txt
files->20.pdf,20.pdf.txt

si può fare?

grazie mille. e buona giornata.
 
In questo forum non siamo soliti realizzare script su richiesta, ma aiutare. Comunque:
PHP:
<?php
$dirs = glob(__DIR__ . '/*', GLOB_ONLYDIR);

foreach ($dirs as $dir) {
    $dirName = dirname($dir);
    echo "<h1>{$dirName}</h1>";
    
    $files = glob("{$dir}/*.pdf");

    foreach ($files as $file) {
        $fileName = basename($file);
        $data = explode(';', file_get_contents("{$file}.txt"));
        list($title, $description, $registrationDate) = $data;

        echo "<a href=\"{$dirName}/{$fileName}\">{$file}</a> - {$title} - {$description} - {$registrationDate}<br>";
    }
}
?>
 
si lo so..

comunque ti allego come viene fuori..

lascia perdere i pdf che ho messo che sono solo una prova..
e poi metto i pdf giusti etc..

Cattura.JPG

mi serve solo che mi visualizza il nome della cartella..
e il nome del file ..

come facceva il secondo script che mi hai postato..
come mai questo fa cosi?

grazie mille e mi scuso..

scusa se ti rispondo ora ma ero via..

buona giornata.
 
Prova così:
PHP:
<?php
$dirs = glob(__DIR__ . '/*', GLOB_ONLYDIR);

foreach ($dirs as $dir) {
    $files = glob("{$dir}/*.pdf");
    $dirName = basename($dir);

    echo "<h1>{$dirName}</h1>";

    foreach ($files as $file) {
        $fileName = basename($file);
        $data = explode(';', file_get_contents("{$file}.txt"));
        list($title, $description, $registrationDate) = $data;

        echo "<a href=\"{$dirName}/{$fileName}\">{$fileName}</a> - {$title} - {$description} - {$registrationDate}<br>";
    }
}
?>
Da me l'output è come quello allegato.

Schermata del 2012-07-03 10:56:56.png
 

Discussioni simili