开发者

altering a string with PHP

If I have filename.jpg, with PHP how would change it too filename123456789.jpg, where 123456789 is a timestamp, I currently do this,

$name = $filename;
$parts = explode(".", $name);
$filename = $parts[0].time().'.'.$par开发者_JAVA百科ts[1];

however this just just leaves me with 123456789.


Your approach works fine too, but breaks if the filename has multiple dots. I'd rather use the pathinfo() function to accomplish this:

$info = pathinfo($filename);
$filename = $info['filename'].time().'.'.$info['extension'];


debug (output) your input and steps to find the error

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');

as mention above use pathinfo instead of explode

i've used explode, couse i've used a dummy filename.


thats a no-brainer:

function getFileName($filename){
preg_match('#([^/]+)\.([\w]+)$#',$filename,$match);
return $match[1].time().'.'.$match[2];
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜