• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:画像ファイル名を、指定順に従って変更したいのですが)

画像ファイルを指定順に変更する方法

このQ&Aのポイント
  • 画像ファイルのリネームは、指定順に従って行うことができます。
  • 元画像ファイル名をリネーム順に変換し、リネーム後の画像名を使って画像を変更することが可能です。
  • 画像ファイルの移動や順序変更に伴って、それに応じてリネームされた画像名を使用することで、指定順に並べられた画像を得ることができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.2

画像名を新しい番号でrenameしたいのですよね? ループ内で1つ1つrenameするのが王道でしょうけど、同名ファイルが存在する可能性が高く、is_file次第で 新名画像を"tmpimg" などと逃がしてから再renameしたり、拡張子を取得したりとけっこう煩雑になりそうです。 単純に、一旦全ファイルを [ 新No.旧No.拡張子 ]にrenameし、次に旧Noの部分を削除して[ 新No.拡張子 ]としてはどうでしょう? $imgs = array('a_1.jpg' ,'a_2.jpg' ,'a_3.jpg' ,'a_4.png' ,'a_5.gif'); $sort = array(1,2,5,3,4); //新Noを冠した画像名の配列 $tmpImgs=array();  //一旦 すべてに新Noをかぶせて [新No.旧No.拡張子] にする foreach($sort as $k=>$v){ $oldImgName = $imgs[$v-1]; $tmpImgName = "a_".($k+1).".$oldImgName"; rename($oldImgName,$tmpImgName); $tmpImgs[] = $tmpImgName; } //真ん中の 旧No の部分を削除して[新No.拡張子]に foreach($tmpImgs as $tmpname){ list($new,$old,$ext) = explode('.',$tmpname); rename($tmpname,"$new.$ext"); }

re97
質問者

お礼

回答ありがとうございました。 大変参考になりましたー

関連するQ&A

専門家に質問してみよう