如果我有filename.jpg,用PHP怎么会改变它filename123456789.jpg,其中123456789是时间戳,我目前这样做,
$name = $filename;
$parts = explode(".", $name);
$filename = $parts[0].time().'.'.$parts[1];
然而这只是让我留下了123456789。
答案 0 :(得分:7)
您的方法也可以正常工作,但如果文件名有多个点,则会中断。我宁愿使用pathinfo()函数来完成这个:
$info = pathinfo($filename);
$filename = $info['filename'].time().'.'.$info['extension'];
答案 1 :(得分:0)
调试(输出)您的输入和步骤以找到错误
function debug($var, $label = '') {
echo $label
. '<pre>'
. print_r($var, true)
. '</pre>';
}
$name = 'filename.bug.test.jpg';
debug($name, 'old filename');
$parts = explode('.', $name);
debug($parts, 'filenameparts');
$ext = array_pop($parts);
$prefix = implode('.', $parts);
$newName = $prefix . time() . '.' . $ext;
debug($newName, 'new filename');
如上所述,使用pathinfo
代替explode
我使用了explode
,我使用了虚拟文件名。
答案 2 :(得分:0)
这是一个明智的选择:
function getFileName($filename){
preg_match('#([^/]+)\.([\w]+)$#',$filename,$match);
return $match[1].time().'.'.$match[2];
}