1

(PHP>=5) *偽りの言い訳: 私はプログラマーではありません。ただ勉強しているだけです...

カスタム '/img' ディレクトリにいくつかのファイルを読みました:

  • 0.jpg
  • 1.jpg
  • 2.jpg
  • ....jpg
  • 10.jpg

だから、array(); を取得しました。

jQuery が認識している ID に従って、配列内の各項目の名前を変更する必要があります (すべてのファイル属性は、必要に応じて ID とクラスを持つ HTML テーブル セルで設定されます)。しかし、ファイルの上書きを避けることができないという最も厄介なこと。

たとえば、1.jpg と 3.jpg の両方の名前を同時に変更します (jQuery を使用して、ID を再割り当てしました (およびビルドされてフォームに渡された新しいファイル名): 1 番目のファイルは ID=3 を取得し、3 番目のファイルは ID=1 を取得しました)

  • 1.jpg -> 3.jpg
  • ...
  • ...
  • 3.jpg -> 1.jpg

トラップがどこにあるかがわかります。

それで、問題は次のとおりです。「/temp」ディレクトリを作成して上書きを避け、それに書き込む必要があるので、後で rename() または mv() する必要がありますか? または、同じことを行うためのより透過的で高速な方法はありますか?

4

2 に答える 2

1

いくつかの方法があります。

  • 3.jpg を temp-dir に移動
  • 1.jpg を 3.jpg に名前変更
  • 3.jpg を 1.jpg に名前変更
  • temp/1.jpg をフォルダーに戻します

  • 3.jpgを3.jpgにリネーム~
  • 1.jpg を 3.jpg に名前変更
  • 3.jpg~ を 1.jpg にリネーム

  • 3.jpg をメモリに読み込む
  • 1.jpg を 3.jpg に名前変更
  • 古い 3.jpg の内容でファイル 1.jpg を作成します (メモリに保存されます)。

他にも方法はあると思いますが、私はこれらがベストだと思います。お役に立てば幸いです:)

-編集- 最後のものが最も速いと思いますが、最も多くのメモリを消費します。それが気に入らなければ、2番目のものを使用します。しかし、それはあなたの選択です:)

于 2011-10-12T18:31:47.393 に答える