이러한 상황을 해결하기 위해 타임스탬프를 사용하여 새 파일의 이름을 바꾸는 방법도 있고, 일련 번호를 증가시키는 방법을 사용하는 방법도 있습니다. 최근에는 유연하게 가져올 수 있는 frename 함수를 작성했습니다. 사용자 정의 규칙에 따라 업로드됩니다. 이로써 파일의 새 이름이 공유됩니다.
코드 복사 코드는 다음과 같습니다.
function frename($file, $rule ='{ 타임스탬프}', $force = true) {
/* -----------------------
* 작성자: m35
* 날짜 : 2009/8/11
* 파일 업로드 및 기타 작업 시 파일 이름이 이미 존재하는 상황에 대처하기 위해 명명 규칙에 따라 파일의 새 이름을 얻습니다.
* @parm1 $file - - 파일의 물리적 경로
* @parm2 $rule -- 이름 지정 규칙, 기본값은 타임스탬프입니다
* @parm3 $force -- 이름을 강제로 지정할지 여부, 그렇다면 대상 파일의 이름은 다음과 같더라도 지정됩니다. 존재하지 않으면 기본값은 강제입니다.
* retrun str -- $rule
*에 따라 이름이 지정된 새 파일 경로:
echo 'Default rule (timestamp):' frename(__FILE__);
echo '
일련번호 증가 규칙:' . frename(__FILE__, '{name}{n}')
echo '
n행에 대한 일련번호 증가 규칙; 0s:' . frename(__FILE__, '{name} {5n}');
echo '
앞에 3개로 구분 기호 _ 0s:' . frename(__FILE__, '{3n }<_>{name}');
echo '
시간 및 날짜 요소 조합 사용 규칙:' . frename(__FILE__, '{ y}_{m}_{d}_{ h}_{i}_{s}');
echo '
축약된 시간 및 날짜 요소 조합 사용 규칙:' . __FILE__, '{Y}_{M}_ {D}_{H}_{i}_{s}')
echo '
기타 맞춤 조합:' . '{타임스탬프}_{이름}< _>{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(); ($y, $Y, $m, $M, $d, $D, $h, $H, $i, $s) = 폭발(',', 날짜('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}'),
배열($name, $timestamp, $y, $Y, $m, $M, $d, $D, $h, $H, $i, $s),
$rule
);
if (preg_match(' /{(d?)n}/', $rule, $n)) {
preg_match('/<([^>] )>/', $tempname, $sep);
$path . str_replace(array($n[0], $sep[0]), $tempname)
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);
$path . $tempname .
}
while (file_exists($file)); {
$path . $tempname .
if (file_exists($file)) return false
else return $tempname . >}
echo '기본 규칙(타임스탬프):' . frename(__FILE__)
echo '
일련 번호 증가 규칙:' . frename(__FILE__, '{name}{n}' );
echo '
n개의 선행 0에 대한 일련번호 증가 규칙:' . frename(__FILE__, '{name}{5n}')
echo '
사용 delimiter _ 앞에 3개의 0이 있는 시퀀스 번호 증가 규칙:' . frename(__FILE__, '{3n}<_>{name}'); > 시간과 날짜 요소의 조합 사용 규칙:' . frename(__FILE__, '{y}_{m}_{d}_{h}_{i}_{s}');
약식 사용 시간 및 날짜 요소 결합 규칙:' . frename(__FILE__, '{Y}_{M}_{D}_{H}_{i}_{s}');
echo '
{n}')
위 내용은 관련 내용을 포함하여 frename PHP 유연한 파일 명명 기능 frename을 소개한 내용이 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.