PHPのrename()関数を使用しフォルダ内のファイル名を変更してみます。
rename()関数を使用することで、ファイルまたはディレクトリの名前を変更することができます。つまり、フォルダ内のファイル名も変更できるということです。
■環境
・Windows10
・XAMPP 8.0.6
・PHP Version 8.0.6
■ファイル名を変更するファイルを用意する
rename()関数を使用しフォルダ内のファイル名を変更してみますが、その前にファイル名を変更するファイルを用意します。
今回は「test1.txt」というtxt形式のテキストファイルを用意しました。ファイルが置かれている場所は「C:\Users\user_\test(フォルダパス)」です。
■rename()関数を使用しフォルダ内のファイル名を変更する
ファイルの用意ができましたので、rename()関数を使用しフォルダ内のファイル名を変更するスクリプトを書いていきます。
■コード
<html lang="ja">
<head>
<title>rename()関数を使用しフォルダ内のファイル名を変更する</title>
</head>
<body>
<?php
$filepath = 'C:\Users\user_\test\test1.txt';
$newfilepath = 'C:\Users\user_\test\new_test.txt';
if(!rename($filepath,$newfilepath)){
echo "ファイル名の変更ができません";
}else{
echo "ファイル名を変更しました。";
}
?>
</body>
</html>
ファイル名を変更するために、今回はfilepathという変数を定義し、その中にファイル名を変更するファイルが置かれている場所(パス)と、ファイル名を格納します。
格納後、newfilepathという変数を定義し、その中にファイル名を変更したファイルを置く場所(パス)と、ファイル名を格納します。
その後、if文を使用し、条件でrename()関数を使用します。rename()関数の括弧内に、第1の引数,パラメータとして、filepath変数を渡します。第2の引数,パラメータでは、newfilepath変数を渡します。これで渡された情報を元に名前が変更されます。変更後、変更された後の情報が返されます。この時に、rename()関数の前にビックリマーク,エクスクラメーションマークを使用していますので、「否定」の意味になります。渡した引数,パラメータを元に変更が正常に完了されない場合は、否定なので、条件を満たす場合(True・真)の処理が実行されます。
一方、渡した引数,パラメータを元に変更が正常に完了した場合は、否定なので、条件を満たさない場合(else)の処理が実行されます。
■実行
では、このスクリプトを「rename_files_in_folder.php」という名前で保存し、実行させてみます。
実行させてみると、rename()関数と、if文、ビックリマーク,エクスクラメーションマーク(否定)を使用したことで、if文の条件を満たさない場合(else)の処理が実行され、echo文で「ファイル名を変更しました。」と出力されました。
出力後、ファイル名を変更したファイルが置かれる場所を確認すると、「test1.txt」から「new_test.txt」というファイル名に変更されていることが確認できました。
コメント