newbie: php как читать в именах файлов в порядке имен файлов - PullRequest
2 голосов
/ 11 марта 2010

Я хочу «включить» последние 2 файла в мой php-файл на основе их имен.

Итак, имена:

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

и я хочу включить только 05 и 04, поскольку их имя начинается с наибольшего числа.

Как мне продолжать это делать?

Ответы [ 3 ]

3 голосов
/ 11 марта 2010

Если в папке только пронумерованные файлы, вы можете использовать

$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
1 голос
/ 11 марта 2010

Поместите значения в массив, выполните обратную сортировку, используя rsort () , а затем возьмите первые два:

$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;

В руководстве по PHP на php.net есть отличная информация о различных методах сортировки.

Обновление:

Как отмечает Psytronic, rsort не будет работать с числами, но вы можете создать пользовательскую функцию, которая легко делает то же самое:

function rnatsort(&$values) {
  natsort($values);
  return array_reverse($values, true);
}
$files = rnatsort($values);
0 голосов
/ 11 марта 2010

Вывести содержимое каталога в массив. Сортируйте этот массив, используя встроенные функции сортировки PHP. Выполните require_once () для первых двух элементов массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...