我想基於他們的名字「包含」我的php文件中的最後2個文件。newbie:php如何在文件名中按文件名的順序讀取
因此,名稱是:
01-blahbla.php 02-sdfsdff.php 03-aaaaaaa.php 04-bbbbbbb.php 05-wwwwwwi.php
,我只希望包括05和04,因爲他們的名字與最大數字開始。
我該如何繼續這樣做?
我想基於他們的名字「包含」我的php文件中的最後2個文件。newbie:php如何在文件名中按文件名的順序讀取
因此,名稱是:
01-blahbla.php 02-sdfsdff.php 03-aaaaaaa.php 04-bbbbbbb.php 05-wwwwwwi.php
,我只希望包括05和04,因爲他們的名字與最大數字開始。
我該如何繼續這樣做?
假設只存在文件夾中的編號的文件,你可以使用
$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
將目錄內容列入數組。 使用內置的PHP排序函數對該數組進行排序。 對數組的前兩個元素執行require_once()。
把值在數組中,反向排序它使用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.net的PHP手冊提供了各種排序方法的一些很好的信息。
更新:
由於Psytronic指出,rsort不換號工作,但你可以創建自定義功能,可以輕鬆地做同樣的事情:
function rnatsort(&$values) {
natsort($values);
return array_reverse($values, true);
}
$files = rnatsort($values);
rsort不起作用,因爲它不會按數字排序,即100在20之前。 – Psytronic 2010-03-10 22:51:20
與*「包括」最後的2文件在我的PHP文件*你的意思是你想包括從一個文件夾到PHP文件?或者你有一個PHP文件中的文件列表? – Gordon 2010-03-10 22:43:20