0

PHPでのファイル操作についてサポートが必要です。既知の名前と不明な拡張子を持つ4つのファイルがあります。そのように:

Y923BBBB.E120506
Y924BBBB.E120606
Y925BBBB.E120706
Y926BBBB.E120806

そしてファイル拡張子は毎日変わります。すべてのファイルのファイル拡張子をカットまたはストリップして、そのような名前だけを残すにはどうすればよいですか?

Y923BBBB
Y924BBBB
Y925BBBB
Y926BBBB

誰かアイデア?

4

3 に答える 3

2

逆に考えてみてください。「拡張子を削除する」のではなく、ファイル名を抽出したいのです。

echo pathinfo($file, PATHINFO_FILENAME);

http://php.net/pathinfo

于 2012-06-06T08:52:42.987 に答える
1

glob('*')Windows と Linux では動作が異なることに注意してください ( answer と比較してください)。DirectoryIteratorより安定したコードが必要な場合は、代わりに使用してください。また、ファイル拡張子を処理するために必要な関数を既に提供しており、この例のように、ファイルにドットが含まれていない場合でも壊れません。renameファイル名のみをglob返し、これをフルパスrenameとして処理します。ファイルを移動したくない場所に移動します。

foreach(new DirectoryIterator('.') as $f) {
    /* @var $f splFileInfo*/
    if (!$f->isFile()) continue;
    ($ext = strlen($f->getExtension())) && $ext++;
    if (!$ext) continue;
    $path = $f->getRealPath();
    rename($path, substr($path, 0, -$ext));
}

気をつけて。名前の変更操作には常に注意する必要があります。ファイルシステムに関連するすべての操作とその変更には、読み取り専用の手続きなど、より注意が必要です。

于 2012-06-07T08:43:33.440 に答える