Paginazione elenco File da una cartella

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, come si fa una paginazione dei file .htm dentro in una cartella pages ..?
con il db lo sapevo fare.. ma visualizzare il contenuto di una cartella con specifica estenzione non so come si può fare..??

mi potete aiutarmi a fare questa cosa?

grazie mille.
 
Per paginazione intendi visualizzare un determinato numero di nomi file per pagina?
 
si, cosi .. perché se ne ho tanti posso deciderli di paginare..
ora ti posto il codice:

PHP:
$dir = "../pages/";

// 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>"; 
echo "<a href=\"index.php?m=pagine&action=modifica&url=$file\" title=\"Modifica pagine\" onClick=\"return confirm('Sicuro di editare?');\">".$file."</a><br />";
}
}
}
}

e l'allegato come viene:
file.jpg

mi dici come devo fare?

grazie mille.
 
ciao
usa glob() per crearti un array di file è prova questo, lho "parzialmente" testato e sembra che funzi

PHP:
<?php
session_start();
// Utilizziamo la funzione per vedere se la directory esiste
if (is_dir($dir)) {
	$file=glob($dir."*.html");//$file è un array con tutti i file .htm dell cartella
}
$per_pag=10;
$tot_file=count($file);
var_dump($_GET['pag']);echo "<br>";
if(isset($_GET['pag'])){
	if($_GET['pag'] =="a"){
		$_SESSION['ini'] =$_SESSION['ini']+($per_pag-1);
		$_SESSION['fine'] =$_SESSION['ini']+($per_pag-1);
		if($_SESSION['ini']>=$tot_file){
			$_SESSION['ini']=($tot_file-1);
			$_SESSION['fine'] =$_SESSION['ini'];
		}
	}elseif($_GET['pag'] =="i"){
		$_SESSION['ini'] =$_SESSION['ini']-($per_pag-1);
		$_SESSION['fine'] =$_SESSION['ini']+($per_pag-1);
		if($_SESSION['ini']<0){
			$_SESSION['ini']=0;
			$_SESSION['fine']=($per_pag-1);
		}
	}
}else{
	$_SESSION['ini']=0;
	$_SESSION['fine']=$per_pag-1;
}
$ini=$_SESSION['ini'];
$fine=$_SESSION['fine'];
for($k=$ini; $k <=$fine; $k++){
	if(isset($file[$k])){
		echo "<a href=\"index.php?m=pagine&action=modifica&url=$file\" title=\"Modifica pagine\" onClick=\"return confirm('Sicuro di editare?');\">".$file[$k]."</a><br />";

	}
}
echo "<br>";
echo "<a href=\"?pag=i\">indietro</a> - <a href=\"?pag=a\">avanti</a>"
?>
 
con la mia modifica funziona e non da nessun notice etc.. con il mio xampp perché ho php 5.3

ti allego il codice .. solo che vorrei nei link vedere solo il nome "contatti.htm", e non "pagine/contatti.htm"..

ecco il codice:
PHP:
<?php
session_start();
// Utilizziamo la funzione per vedere se la directory esiste
$dir = "pagine/";
if (is_dir($dir)) {
    $file=glob($dir."*.htm");//$file è un array con tutti i file .htm dell cartella
}
$per_pag=2;
$pag = (isset($_GET["pag"])) ? trim ($_GET["pag"]): '';
$tot_file=count($file);
echo "<br>";
if($pag){
    if($pag =="a"){
        $_SESSION['ini'] =$_SESSION['ini']+($per_pag-1);
        $_SESSION['fine'] =$_SESSION['ini']+($per_pag-1);
        if($_SESSION['ini']>=$tot_file){
            $_SESSION['ini']=($tot_file-1);
            $_SESSION['fine'] =$_SESSION['ini'];
        }
    }elseif($pag =="i"){
        $_SESSION['ini'] =$_SESSION['ini']-($per_pag-1);
        $_SESSION['fine'] =$_SESSION['ini']+($per_pag-1);
        if($_SESSION['ini']<0){
            $_SESSION['ini']=0;
            $_SESSION['fine']=($per_pag-1);
        }
    }
}else{
    $_SESSION['ini']=0;
    $_SESSION['fine']=$per_pag-1;
}
$ini=$_SESSION['ini'];
$fine=$_SESSION['fine'];
for($k=$ini; $k <=$fine; $k++){
    if(isset($file[$k])){
        echo "<a href=\"index.php?m=pagine&action=modifica&url=$file[$k]\" title=\"Modifica pagine\" onClick=\"return confirm('Sicuro di editare?');\">".$file[$k]."</a><br />";

    }
}
echo "<br>";
echo "<a href=\"?pag=i\">indietro</a> - <a href=\"?pag=a\">avanti</a>"
?>
 
ok. lascio perdere ho visto i sorgenti troppo complicata e poi troppo codice..

quindi rimango con quella di borgo..

ciao e grazie lo stesso.
 

Discussioni simili