Используйте PHP, чтобы вывести список каталогов и сократить имена файлов до целых - PullRequest
0 голосов
/ 17 февраля 2011

У меня небольшой PHP-проект, который требует использования файлов с пронумерованными именами, например:

folder/1.file
folder/2.file
folder/3.file
... etc.

Что мне нужно сделать, это получить массив этих имен файлов (достаточно просто), а затем разделить их до целых чисел (например, массив (1, 2, 3)). Я новичок в PHP, поэтому не очень разбираюсь в его функциональности.

Буду признателен за любой совет, который вы мне дадите. Спасибо.

Ответы [ 5 ]

1 голос
/ 17 февраля 2011

Примерно так должно работать:

$di = new DirectoryIterator('path/to/files');
foreach($di as $finfo) {
  if($finfo->isFile()) {
    $fname = (int)$finfo->getBasename();
    // do something
  }
}

$ fname внутри цикла foreach будет содержать ваше целое число.

0 голосов
/ 17 февраля 2011
$directory = 'your/directory';
if ($handle = opendir($directory))
{
    while (false !== ($file = readdir($handle)))
    {
        if ($file != "." && $file != ".." && is_file($directory . "/" . $file))
        {
            $file_id = (int)pathinfo($directory . "/" . $file,PATHINFO_FILENAME);
        }
    }
    closedir($handle);
}

Это должно работать нормально.

0 голосов
/ 17 февраля 2011
$array = array();
foreach(glob('*.file') as $filename) {
    $array[] = (int)$filename;
}
print_r($array);
0 голосов
/ 17 февраля 2011

Вы можете использовать регулярное выражение:

foreach(scandir('/path/to/folder') as  $file) {
    $files[] = preg_replace("/[^0-9]+/", "", $file);
}
0 голосов
/ 17 февраля 2011
<?php
$files = array();
foreach($scandir('folder') as $file) {
    if ($file == '.' || $file == '..')
        continue;
    $files[] = (int)$file;
}

Приводит имена файлов к целому числу, которое фактически заменяет все, что начинается с целого числа, за которым следуют любые символы, до целого числа.

например,

"123text" => 123
"421" => 421
"other" => 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...