拡張子の直前に文字列を追加 (PHP)

ファイル名の変更など(rename等)で古いファイルに文字列を追加して、別名として残しておきたい場合、以下のような関数でファイル名を作成し、リネームを行うと便利です。
例えば、拡張子の前に_oldを追加する場合の関数です。

function add_filename($filename,$addtext){
	//拡張子の前に文字列を追加
	$pos  = strrpos($filename, '.'); // .が最後に現れる位置
	if ($pos){
		return(substr($filename, 0, $pos).$addtext.substr($filename, $pos));
	}else{
		return($filename.$addtext);
	}
}

上記を用いて、sample.txtをsample_old.txtに変換します。

$fn = 'sample.txt';
rename($fn,add_filename($fn,'_old'));

日付などを追加してみてもよいかと思います。