php f filename,frename PHP 灵活文件命名函数 frename

对付这种情况,有的做法是用时间戳对新文件进行重新命名,有的是用序号递增的方法,为了解决麻烦的操作,我在最近编写了一个frename函数,可以灵活依据自定义的规则取得上传文件的新命名,特此分享。

复制代码 代码如下:

_并带有3个前导0的序号递增规则:' . frename(__FILE__, '{3n}{name}');

echo '

使用时间日期元素组合的规则:' . frename(__FILE__, '{y}_{m}_{d}_{h}_{i}_{s}');

echo '

使用简写形式的时间日期元素组合的规则:' . frename(__FILE__, '{Y}_{M}_{D}_{H}_{i}_{s}');

echo '

其他自定义组合:' . frename(__FILE__, '{timestamp}_{name}{n}');

----------------------- */

if (!$force && !file_exists($file)) return $file;

$filename = basename($file);

$path = str_replace($filename, '', $file);

$suffix = substr($filename, strrpos($filename, '.'));

$name = str_replace($suffix, '', $filename);

$timestamp = time();

list($y, $Y, $m, $M, $d, $D, $h, $H, $i, $s) = explode(',', date('Y,y,m,n,d,j,h,G,i,s'));

$tempname = str_replace(

array('{name}', '{timestamp}', '{y}', '{Y}', '{m}', '{M}', '{d}', '{D}', '{h}', '{H}', '{i}', '{s}'),

array($name, $timestamp, $y, $Y, $m, $M, $d, $D, $h, $H, $i, $s),

$rule

);

if (preg_match('/\{(\d?)n\}/', $rule, $n)) {

preg_match('/]+)>/', $tempname, $sep);

$file = $path . str_replace(array($n[0], $sep[0]), array('', ''), $tempname) . $suffix;

if (!file_exists($file)) return $file;

$tempname = str_replace($sep[0], $sep[1], $tempname);

$tname = $tempname;

$i = 1;

do {

$nn = sprintf("%0{$n[1]}s", $i);

$tempname = str_replace($n[0], $nn, $tname);

$file = $path . $tempname . $suffix;

}

while (file_exists($file));

return $file;

} else {

$file = $path . $tempname . $suffix;

if (file_exists($file)) return false;

else return $path . $tempname . $suffix;

}

}

echo '默认规则(时间戳):' . frename(__FILE__);

echo '

序号递增规则:' . frename(__FILE__, '{name}{n}');

echo '

n个前导0的序号递增规则:' . frename(__FILE__, '{name}{5n}');

echo '

用分隔符_并带有3个前导0的序号递增规则:' . frename(__FILE__, '{3n}{name}');

echo '

使用时间日期元素组合的规则:' . frename(__FILE__, '{y}_{m}_{d}_{h}_{i}_{s}');

echo '

使用简写形式的时间日期元素组合的规则:' . frename(__FILE__, '{Y}_{M}_{D}_{H}_{i}_{s}');

echo '

其他自定义组合:' . frename(__FILE__, '{timestamp}_{name}{n}');

?>

以上就介绍了 frename PHP 灵活文件命名函数 frename,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值