-1

単一のディレクトリでいくつかの jpeg の名前を変更しようとしています。コードの半分は正しいファイル名で名前が変更されるという点で機能しますが、何らかの理由で新しいファイル名が二重引用符で囲まれているため、私の Web ページからアクセスできません。

どんな助けでも大歓迎です!

$i = 10000;

foreach ($imgArray as $v) {

    $html_file_name = basename($v).PHP_EOL;
    $html_file_name =  str_replace(range(0,9),'', $html_file_name);

    $path = pathinfo($v, PATHINFO_DIRNAME);

    $target = ++$i . $html_file_name;

    rename ($v, $path . '/' . $target);

}

OK では、var_dump($imgArray) を次に示します。

array(3) { [0]=> string(47) "../img/gallery/this-is-the-first/10002-vddf.jpg" [1]=> string(51) "../img/gallery/this-is-the-first/10001-vfdssddf.jpg" [2]=> string(50) "../img/gallery/this-is-the-first/10003-vddsvsf.jpg" }

連載:

a:3:{i:0;s:47:"../img/gallery/this-is-the-first/10002-vddf.jpg";i:1;s:51:"../img/gallery/this-is-the-first/10001-vfdssddf.jpg";i:2;s:50:"../img/gallery/this-is-the-first/10003-vddsvsf.jpg";}
4

1 に答える 1

0

ファイル名に改行の問題があります

  $html_file_name = basename($v).PHP_EOL;
                                    ^-------- Appending End of Line to File Name

あなたに必要なのは

$i = 10000;
foreach ($imgArray as $v) {
    rename($v, pathinfo($v, PATHINFO_DIRNAME) . '/' . (++$i . str_replace(range(0,9),'',  basename($v))));
}
于 2012-10-17T12:18:05.460 に答える