获取目录中每个文件名的一部分

时间:2016-08-24 09:25:43

标签: php

我有一个目录,并希望只获取该目录中所有文件的部分文件名。

例如,如果我有一个包含以下文件的目录:

file_a1.php
file_b2.php
file_c3.php

我想要一个阵列......

Array
(
    [0] => a1
    [1] => b2
    [2] => c3
)

...来自目录中的文件。

目前我正在使用glob():

$files = glob(__DIR__ . '/directory/file_*.php');

然后循环遍历数组中的每个值并从开头剥离'/ directory / file_',从每个字符串的末尾剥离'.php'。当然有更好的方法来做到这一点?除了我一直在做或使用正则表达式选择我想要的。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用str_replace

$files = array(
        __DIR__ . '/directory/file_a1.php',
        __DIR__ . '/directory/file_a2.php',
        __DIR__ . '/directory/file_a3.php');
$new_files = array();

foreach ($files as $file) {
    $new_files[] = str_replace(array(__DIR__ . '/directory/file_', '.php'), '', $file);
}

var_dump($new_files);

结果:

array (size=3)
  0 => string 'a1' (length=2)
  1 => string 'a2' (length=2)
  2 => string 'a3' (length=2)