用PHP改变字符串

时间:2010-09-27 09:14:07

标签: php string

如果我有filename.jpg,用PHP怎么会改变它filename123456789.jpg,其中123456789是时间戳,我目前这样做,

$name = $filename;
$parts = explode(".", $name);
$filename = $parts[0].time().'.'.$parts[1];

然而这只是让我留下了123456789。

3 个答案:

答案 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];
}