私はこの奇妙な問題を抱えています。
1.jpg、2.jpg、3.jpg、4.jpg、5.jpg というファイルがあります。
さて、並べ替えができるようにしたいので、たとえば 3 を 2 にしたい場合は、3.jpg ==> 1b.jpg と名前を変更すればよいと思いました。これにより、彼は 1 と 2 の間に配置されます。
フォルダ内のすべてのファイルの名前を変更するだけです。しかし、これはうまくいかないようです...
私のコードは次のとおりです。
// Part 1
$fileUp = $_POST['imageURL'];
$url = $_SERVER['DOCUMENT_ROOT'].$fileUp;
$fileParts = pathinfo($fileUp);
$fileName = $fileParts['filename'];
$fileExt = $fileParts['extension'];
$fileFolder = $fileParts['dirname'];
$newName = $fileName - 2;
$newFullName = $newName . 'b.' . $fileExt;
$directory = $_SERVER['DOCUMENT_ROOT'].$fileFolder.'/';
rename($url, $directory.$newFullName);
// Part 2
$dirFiles = array();
if ($handle = opendir($directory)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$dirFiles[] = $file;
}
}
closedir($handle);
}
sort($dirFiles);
$i = 1;
foreach($dirFiles as $file)
{
$fileParts = pathinfo($file);
$fileExt = $fileParts['extension'];
$newName = $i . '.' . $fileExt;
rename($directory.$file, $directory.$newName);
$i++;
}
パート 1 では、基本的にアップするファイルの名前を変更します。これはうまくいきます!ただし、その後 readdir を使用してファイルをリロードすると、このイメージはあるべき場所にありません (多くの場合、最後に)。
パート 2 では、すべてのファイルの名前を変更します。しかし、その2を有効にすると、アップする画像の前の画像が消えてしまう!
たとえば、「1.jpg、2.jpg、3.jpg」があり、2.jpg をアップしたい場合、「2.jpg、3.jpg」になります (2 と 3 の避難所'名前が変わって、1.jpg が消えてしまった...)
すべてのヘルプは非常に高く評価されています!