0

複数の画像を gif、jpg、bmp などの拡張子の異なるフォルダーにアップロードするコードを作成しました。

フォルダ内のすべての画像をjpgに変換したいと思います。名前を変更してインスタンスを試してみましたが、見つかったコードでは、hello.gif.jpg や bye.jpg.jpg などの 2 つのファイル拡張子が付けられました。

上記のプロセスを実行しようとした最新のコードは、次を使用しています。

<?php
$directory = "img/";
$images = glob($directory . "*.jpg"); 
$a = 0;
foreach($images as $image)
{
$a++;
rename($image, "test/".$a.".jpg"); 
}
?>

エラーは発生しませんでした。画像をさまざまな形式からjpgに変換するのではなく、拡張子を変更したいだけです。

4

3 に答える 3

0

たとえば、ファイルの名前がhello.gif. あなたはそれ.jpgを作る最後に追加していhello.gif.jpgます。

最初にファイル名から拡張子を削除してから、新しい名前で保存する必要があります。そのようです:

<?php

$directory = "img/";
$images = glob($directory . "*.jpg"); 
$a = 0;

foreach($images as $image) {
    $a++;
    $trimmed = substr($image, 0, strpos($name, '.'));
    rename($image, "test/" . $trimmed . ".jpg"); 
}

substr($image, 0, strpos($name, '.'))ファイル名も拡張子も取得しないようにします。これは、.および その後の文字を削除することによって行われます。

于 2013-10-08T15:40:51.183 に答える