8
votes

Afficher les fichiers dans le répertoire avec pagination - PHP

Je veux afficher des fichiers dans mon répertoire dans le navigateur. Je sais que cela est possible en utilisant @Opendir et lavedir .. Mais ce que je veux, c'est de limiter le nombre de fichiers dans la liste à un numéro spécifique et à l'affichage suivant à l'aide de la pagination .


1 commentaires

S'il vous plaît voter si vous trouvez la question utile .. :)


6 Réponses :


0
votes

dépend de la façon dont vous voulez y aller. Il y a une tonne de bibliothèques JavaScript / JQuery Pagination, là-bas .. Juste Google "Pagination JavaScript."

Si JavaScript n'est pas une option ou si vous préférez simplement utiliser PHP, il devrait être relativement simple.

Utilisez Opendir / ReadDir pour obtenir une liste de tous les fichiers. Configurez-vous si beaucoup vous voulez pour l'affichage. Divisez le reste par ce nombre pour obtenir le nombre de pages. Ensuite, prenez une tranche de la matrice du (page - 1) * (numéro à la liste) jusqu'à (numéro à la liste). Ce sont les fichiers que vous allez montrer. Passez le numéro de page via GET / POST. Si c'est trop élevé, utilisez la dernière page, trop faible ou non numérique, utilisez la première page.


2 commentaires

Je veux une solution PHP pure .. pas Java, sinon je ne serai pas ici .. :)


Magento. stackexchange.com/questions/316910/...



0
votes

Pour la pagination, vous pouvez utiliser zend_paginator .
Une fois que vous avez obtenu la liste des fichiers dans le répertoire, vous ne configurez que le paginateur et vous prendra soin du reste.


0 commentaires

6
votes

Vous pouvez utiliser Scandir pour lire tout le contenu du répertoire dans un tableau. Ensuite, émettez le contenu de la matrice en fonction de la valeur de pagination.

$offset = 10; //get this as input from the user, probably as a GET from a link
$quantity = 10; //number of items to display
$filelist = scandir('/mydir');

//get subset of file array
$selectedFiles = array_slice($filelist, $offset-1, $quantity);

//output appropriate items
foreach($selectedFiles as $file)
{
    echo '<div class="file">'.$file.'</div>'; 
}


3 commentaires

J'ai essayé $ fichier \ n'; }?> .. mais ne fonctionne pas


Je suis heureux d'avoir pu aider. Qu'est-ce que je suis gâché? :)


Magento. stackexchange.com/questions/316910/...



0
votes

Peut-être que quelque chose comme ça? XXX

puis Demandez à vos boutons NAV modifier le numéro de page.


0 commentaires

0
votes

Vous devriez essayer Yui 2 pagination et peut-être que si vous souhaitez afficher le fichier dans une table, utilisez le jeu de données Il existe une très utile composants de Yahoo User Interface

salutations


0 commentaires

4
votes

Publication d'un exemple (aussi Dans cette question ) -

répertoire et limitatif (code> est mes nouveaux meilleurs amis, bien que glob semble être préfilecteur plus facilement. Vous pouvez également écrire une personnalisation Filteriterator . Besoin de PHP> 5.1, je pense.

pas de préfiltre: xxx

glob préfiltre: xxx

alors, faites votre truc: xxx

Notez que dans le cas de la répertérateur exemple, $ Fichier sera une instance de splfileinfo , tandis que glob est juste le chemin de disque.


2 commentaires

En essayant ce code, mon $ paginé est vide. Exécution d'un impression_R sur $ DIR_ITERAROR retournements .... Objet Arrayiterator ([Stockage: Arrayiterator: privé] => Objet ArrayObject ([Stockage: ArrayObject: Private] => Array (Liste attendue des articles ici). Var_Dump sur la pagination envoie l'objet (Limitatifator) # 3 (0) {} et un impression_r donne un objet limitatifator (). My $ page de page et $ de perméompe vars sont dans les limites. Je ne sais pas pourquoi la limitative ne retournerait rien si le Dir_iterator est rempli de fichiers. Utilisation de PHP 5.3


Magento. stackexchange.com/questions/316910/...