3つの異なるフォルダーに追加された最新のファイルを見つけるために、次のコードを記述しました。フォルダのディレクトリをpathという配列に保存しました。また、最新のファイルの名前を別の配列に格納します。
$path[0] = "/Applications/MAMP/htdocs/php_test/check";
$path[1] = "/Applications/MAMP/htdocs/php_test/check2";
$path[2] = "/Applications/MAMP/htdocs/php_test/check3";
for ($i=0; $i<=2; $i++){
$path_last = $path[$i]; // set the path
$latest_ctime = 0;
$latest_filename = '';
$d = dir($path_last);
while (false !== ($entry = $d->read())) {
$filepath = "{$path_last}/{$entry}";
if (is_file($filepath) && filectime($filepath) > $latest_ctime) {
$latest_ctime = filectime($filepath);
$latest_filename = $entry;
$array[$i] = $latest_filename ; // assign the names of the latest files in an array.
}
}
すべて正常に動作しますが、今は同じコードを関数に入れて、メインスクリプトで呼び出そうとしています。私はそれを呼び出すためにこのコードを使用します:
include 'last_file.php'; // Include the function last_file
$last_file = last_file(); // assign to the function a variable and call the function
これが正しいかどうかはわかりません。私がやりたいのは、メインスクリプトで配列を返すことです。ここで、私が説明しようとしていることが明確になっていることを願っています。ありがとう。
これはlast_file関数です。
function last_file(){
for ($i=0; $i<=2; $i++){
$path_last = $path[$i]; // set the path
$latest_ctime = 0;
$latest_filename = '';
$d = dir($path_last);
while (false !== ($entry = $d->read())) {
$filepath = "{$path_last}/{$entry}";
// could do also other checks than just checking whether the entry is a file
if (is_file($filepath) && filectime($filepath) > $latest_ctime) {
$latest_ctime = filectime($filepath);
$latest_filename = $entry;
$array[$i] = $latest_filename ; // assign the names of the latest files in an array.
}
}
return $array;
}//end loop
}//end function