2016-08-24 63 views
1

我有一個目錄,並且只想獲取該目錄中所有文件的部分文件名。獲取目錄中每個文件名的部分

例如,如果我有下列文件的目錄:

file_a1.php 
file_b2.php 
file_c3.php 

我想獲得一個數組...

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

...從目錄中的文件。

目前我使用水珠()作爲這樣的:

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

然後從結束時的開始和「.PHP」上循環陣列中的每個值和剝離「/目錄/ _文件」每個字符串。當然有更好的方法來做到這一點?除了我一直在做的或使用正則表達式來選擇我想要的。

謝謝!

回答

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) 
+0

這正是我正在做的那一刻;)看起來有可能沒有更好的辦法? – Enstage

+0

你也可以使用[preg_match](http://php.net/manual/en/function.preg-match.php)的正則表達式,但我不知道性能是否會更好。我有大量類似於你的代碼,我使用str_replace。 – roberto06

相關問題