文件名看起来像whatever_test_123234545.gif
。
最简单的方法是删除最后一个下划线,后跟所有字符和数字,但不是点扩展名。
换句话说,我希望whatever_test_123234545.gif
看起来像whatever_test.gif
。文件名可以具有随机数的下划线。我只想删除.ext
之前的最后一部分。
答案 0 :(得分:3)
这将删除最后一个下划线和.
之间的所有内容。如果文件名没有.
或没有_
,则不会更改文件名:
$filename = 'whatever_test_123234545.gif';
$new_filename = preg_replace('/_[^_.]*\./', '.', $filename);
并实际重命名文件:
rename($filename, $new_filename);
答案 1 :(得分:2)
以下代码将替换最后一个_XXXXXX。 XXX是任何数字。仅当XXX是数字时才会替换。
$filename = 'whatever_test_56623736373738333.gif';
$new_filename = preg_replace('/_[0-9]+(\.)/', '.', $filename, 1);
答案 2 :(得分:1)
$x = 'whatever_test_123234545.gif';
$newstring = substr($x, 0, strrpos($x, '_')).substr($x, strrpos($x, '.'));
答案 3 :(得分:1)
这个将替换之前的最后一个_XXXXXX。其中XXX是任何字符串。
<?php
echo preg_replace('/_[a-zA-Z0-9]+(\.)/', '.', 'whatever_test_123234545.gif', 1);
?>
// Prints: whatever_test.gif