2010-03-10 4 views
2

Je veux « inclure » les 2 derniers fichiers dans mon fichier php en fonction de leurs noms.débutant: php comment lire dans les noms de fichiers dans l'ordre de nom de fichier

Ainsi, les noms sont:

 
01-blahbla.php 
02-sdfsdff.php 
03-aaaaaaa.php 
04-bbbbbbb.php 
05-wwwwwwi.php 

et je veux seulement inclure 05 et 04 depuis leur nom commence par le plus grand nombre.

Comment puis-je continuer à faire cela?

+0

avec * « inclure » la dernière 2 fichiers dans mon fichier php * vous voulez dire que vous souhaitez inclure à partir d'un dossier dans le fichier php? Ou avez-vous une liste de fichiers dans un fichier php? – Gordon

Répondre

3

En supposant qu'il n'y a que les fichiers numérotés dans le dossier, vous pouvez utiliser

$files = glob('/path/to/files/*.php'); // get all php files in path 
natsort($files);      // sort in natural ascending order 
$highest = array_pop($files);   // get last file, e.g. highest number 
$second = array_pop($files);   // again for second highest number 
0

Liste Le contenu du répertoire dans un tableau. Triez ce tableau en utilisant les fonctions de tri PHP intégrées. Effectuez un require_once() sur les deux premiers éléments du tableau.

1

Mettez les valeurs dans un tableau, inverser le tri à l'aide rsort() puis prendre les deux premiers:

$values = array('01-blahbla.php', '02-sdfsdff.php', '03-aaaaaaa.php', '04-bbbbbbb.php', '05-wwwwwwi.php'); 
rsort($values); 
$file1 = $values[0]; 
$file2 = $values[1]; 
require_once $file1; 
require_once $file2; 

Le manuel PHP sur php.net contient de très bonnes informations sur les différentes méthodes de tri.

Mise à jour:

Comme Psytronic noté, rsort ne fonctionnera pas pour les chiffres, mais vous pouvez créer une fonction personnalisée qui fait facilement la même chose:

function rnatsort(&$values) { 
    natsort($values); 
    return array_reverse($values, true); 
} 
$files = rnatsort($values); 
+0

rsort ne fonctionnerait pas, car il ne serait pas les trier numériquement, à savoir 100 vient avant 20. – Psytronic

Questions connexes