php文件名命名
可以使用php,rename() 函數重命名文件或目錄。
若成功,則該函數返回 true。若失敗,則返回 false。
命令格式為:
bool rename ( string oldname, string newname [, resource context] )
下面演示rename的具體應用,文件位置如圖:
<?php
$file="html/cache.txt";
$rename="html/rename.txt";
if(rename($file,$rename)){
echo"更名成功";
}else{
echo"更名失敗";
}
rename("html/cache2","html/cache3.txt");
rename("html","cache");
rename("file","html/files");
?>
⑵ 如何用PHP給上傳的文件改名
上傳文件,PHP是在你的伺服器上建立臨時文件,日期肯定是當時的,名字是隨機名字,你應該把這個文件COPY到你自己的文件夾下(應該專門用一個文件夾來存放大家上傳的文件)。下面是我上傳文件的例子(部分代碼):
保存部分PHP代碼:
for ($i=1; $i<=$filecnt; $i++){
$f_image="file".$i;
$tmp_name=$HTTP_POST_FILES["$f_image"][tmp_name];
$src_name=$HTTP_POST_FILES["$f_image"][name];
$src_size=$HTTP_POST_FILES["$f_image"][size];
$note_str=$_REQUEST["note$i"];
if (!$tmp_name || !$src_name || $tmp_name=='nono') continue;
$ext=substr(strrchr($src_name,'.'),1);
$ext=strtolower($ext);
if (substr($ext,0,3)=='php' || $ext=='pl' || $ext=='cgi'){
echo "$src_name 沒有保存,因為你傳的是腳本文件,如果你不想在主機上搞破壞,請你壓縮後上傳。<br>";
continue;
}
//處理圖片文件
$imginfo=getimagesize($tmp_name);
if ($imginfo && $imginfo[0]>0){
//壓縮寬度超過800的圖片為800,10K以上的JPG圖片用30%進行壓縮
if ($imginfo[0]>800){
echo "你上傳的圖片幅面為 $imginfo[0] x $imginfo[1] ,將被壓縮到800個象素寬。<br>";
system('"C:\Program Files\ImageMagick-6.0.7-Q16\convert.exe"'." -sample 800 -quality 80 $tmp_name $tmp_name");
} elseif($imginfo[2]==2 && $src_size>10240) system("/usr/local/bin/convert -quality 30 $tmp_name $tmp_name");
//規范化圖片文件擴展名
if ($imginfo[2]==1) $ext='gif';
elseif ($imginfo[2]==2) $ext='jpg';
elseif ($imginfo[2]==3) $ext='png';
elseif ($imginfo[2]==4) $ext='swf';
elseif ($imginfo[2]==5) $ext='psd';
elseif ($imginfo[2]==6) $ext='bmp';
elseif ($imginfo[2]==7) $ext='tiff';
elseif ($imginfo[2]==8) $ext='tiff';
//壓縮BMP、TIFF文件為JPG格式
if ($imginfo[2]==6 || $imginfo[2]==7 || $imginfo[2]==8){
system('"C:\Program Files\ImageMagick-6.0.7-Q16\convert.exe"'." -quality 80 $tmp_name $tmp_name.jpg");
rename("$tmp_name.jpg",$tmp_name);
$ext='jpg';
}
}
$save_name="$year_week/$save_id-$i";
if ($ext!='') $save_name.='.'.$ext;
$result="文件 $src_name 保存為 $save_name ";
if(($tmp_name,$save_name)){
$str="insert into clubfile(user,ext,note,fip,pub,fname,fsize) values('$PHP_AUTH_USER','$ext','$note_str','$ip',$pub,'$save_name',$src_size)";
mysql_query($str);
$result .= '成功。';
}
else{
$result .= '失敗!';
}
echo $result.'<br>';
上傳頁面PHP代碼:
echo <<<END
<div class=pagetitle>上傳文件</div>
<center>特別說明:上傳後<b>先</b>在其它網站鏈接的文件將被自動刪除!</center>
<script language="javascript">
var filecnt=1;
function addfile()
{
filecnt++;
document.all.item('fileinput').innerHTML = document.all.item('fileinput').innerHTML + "<br>上傳文件"+filecnt+": <input type=file name=file"+filecnt+" size=30 onBlur=setNote("+filecnt+")> 說明:<input type=text name=note"+filecnt+" size=32>";
form1.filecnt.value=filecnt;
}
function del_note_path(){
for(i=1;i<=filecnt;i++){
v=eval('document.form1.note'+i);
v.value=v.value.replace(/.*\\\\/,'');
}
}
</script>
<form name=form1 method=post enctype="multipart/form-data" action=$_SERVER[PHP_SELF]>
<input type=hidden name=job value='upload_save'>
<input type=hidden name=filecnt value=1>
<INPUT TYPE=hidden name=MAX_FILE_SIZE value=10240000>
<span id=fileinput>上傳文件1: <input type=file name=file1 size=30 onBlur=setNote(1)> 說明:<input type=text name=note1 size=32></span><br>
<input type=button onclick="javascript:addfile();" value='增加上傳文件'>(可以一次上傳多個文件)
<input type=button onclick='javascript:del_note_path();' value='刪除說明中的目錄'><br>
公開: <input type=checkbox name=pub> (選中公開以後,別人可以看見你上傳的文件) <br>
<input type=submit value="確認文件清單,立即上傳">(建議你一定寫上詳細的文件說明,因為上傳後文件將統一命名)
</form>
<a href=$PHP_SELF>返回瀏覽畫面</a>
<script language=javascript>
function setNote(i){
var s='';
eval("s=form1.file"+i+".value");
s=s.toLowerCase();
s=s.substr(s.length-4);
if (s=='.bmp') alert('嚴禁上傳BMP文件:請你用畫圖打開,另存為JPG格式再上傳');
s="if (form1.file"+i+".value!='' && form1.note"+i+".value=='') form1.note"+i+".value=form1.file"+i+".value";
eval(s);
}
</script>
</body>
</html>
END;
⑶ php 上傳文件重命名
上傳文件或圖片進行重命名是我們在php上傳中會碰到的一個問題了,在重命名無非就是對你上傳的文件生成一個隨機的字元串了,包括有Md5,隨機,或按時間日期來重命名了,下面我來給大家介紹。
如我們在上傳文件頁面中如下操作:
$name=$_FILES['userfile']['name'];//將所上傳的文件名稱賦予name
然後我們要對它進行重命名
//文件名的自動生成
list($usec,$new_name)=explode("",microtime());
if(@$extension_name){//限制文件類型為jpg、gif、png、bmp
move_uploaded_file($tmp_name,$new_dir.'/'.$new_name.'.'.$extension_name);//移動到目標文件夾
echo'上傳成功';
這樣我們就把文件名以時間日期生成了一個新的文件名了,例:
<formaction="upload_file.php"method="post"
enctype="multipart/form-data">
<labelfor="file">Filename:</label>
<inputtype="file"name="file"id="file"/>
<br/>
<inputtype="submit"name="submit"value="Submit"/>
</form>
以下是我添加的將文件名重命名為系統時間的代碼:
<?php$date=date(ymdhis);
//echo($date);
if((($_FILES["uppic"]["type"]=="image/gif")
||($_FILES["uppic"]["type"]=="image/jpeg")
||($_FILES["uppic"]["type"]=="image/pjpeg"))
&&($_FILES["uppic"]["size"]<2000000))
{
if($_FILES["uppic"]["error"]>0)
{
echo"ReturnCode:".$_FILES["uppic"]["error"]."<br/>";
}
else
{
//echo"Upload:".$_FILES["uppic"]["name"]."<br/>";
//echo"Type:".$_FILES["uppic"]["type"]."<br/>";
//echo"Size:".($_FILES["uppic"]["size"]/1024)."Kb<br/>";
//echo"Tempfile:".$_FILES["uppic"]["tmp_name"]."<br/>";
$uptype=explode(".",$_FILES["uppic"]["name"]);
$newname=$date.".".$uptype[1];
//echo($newname);
$_FILES["uppic"]["name"]=$newname;
if(file_exists("pics/".$_FILES["uppic"]["name"]))
{
echo$_FILES["uppic"]["name"]."alreadyexists.";
}
else
{
$_FILES["uppic"]["name"]=
move_uploaded_file($_FILES["uppic"]["tmp_name"],
"pics/".$_FILES["uppic"]["name"]);
echo"<script>alert('上傳成功!')</script>";
echo"<script>window.location.href='
}
}
}
else
{
echo"Invalidfile";
}
?>
大家可以參考一下
⑷ 用PHP實現文件的重命名
move_uploaded_file就可以重命名了。重命名後保存到資料庫中也要用新名稱
move_uploaded_file(「@a:臨時文件名」,"@b:保存的文件路徑和文件名");
你的程序@b處使用是的原來的名稱,是可以改名稱的
⑸ php 如何對上傳文件的文件名進行重命名
<html>
<body>
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="test.php">
上傳圖片
<input name="tupian" type="file" id="tupian" />
<input type="submit" name="button" id="button" value="上傳" />
</form>
<?php
if (isset($_FILES['tupian'])) {
// echo '<pre>';
// print_r($_FILES["tupian"]);
// echo '</pre>';
if ($_FILES["tupian"]['error'] == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["tupian"]["tmp_name"];
$name = $_FILES["tupian"]["name"];
move_uploaded_file($tmp_name, "$name");//在這里進行文件改名
}
echo '<img src="' . $name . '" />';
}
?>
</body>
</html>
⑹ php 生成靜態頁面的文件名命名
第一個問題是靜態頁面的命名一般是有含義的命名:比如說這個頁面是新聞信息那麼應該有一個新聞的文件夾來放這些含有新聞的靜態頁面要是這樣的方式,那麼靜態頁面的的名字就可以用時間來命名了。如果所有的靜態頁面都在一個文件夾下,那麼最好是比如news_時間.html以頁面內容為開頭連接一個下劃線加上一個不重復的時間為最好。
第二個問題是修改了數據是否要刪除原有靜態頁,如果你有模板的話可以直接刪除存在資料庫靜態頁的地址然後重新命名新的靜態頁然後將這個頁的地址更新回資料庫中。如果你這個靜態頁的命名是有自己定義的邏輯順序的可以用文件打方式把裡面要替換的值替換掉然後保存到文件夾中還是以原文件名一致。
本人認為生成靜態頁面最好文件名要有一定的意義,做以區分
⑺ PHP自動重命名文件實現方法
本文實例講述了PHP自動重命名文件實現方法。分享給大家供大家參考。具體方法分析如下:
PHP重命名文件名我們在實際開發過程中經常會使用到,比如用戶上傳文件或是一些緩存文件自動生成的功能我們都需要使用到自動重命名功能。但一般我們在製作上傳文件時命名方式都是使用取系統當前時間加上隨時數的方式在進行,這種方法固然可行但有時候並不能滿足客戶要需求。有些客戶就要求我們的文件名命名方式要像windows系統一樣自動流水編號,比如上傳一個名字為「新建文本文檔」當再有其它人上傳一個文件名為「新建文本文檔」時我們就使用流水號命名意思就是自動然第二個「新建文本文檔」命名為「新建文本文檔(1)」
當再有人上傳同名文件再以此類推。
下面分享一個源碼給大家:
復制代碼
代碼如下:<?php
$file
=
dirname(__FILE__).'/新建
文本文檔.txt';
echo
L_rename($file);
function
L_rename($file){
$iCount
=
0;
$File_type
=
strrchr($file,
'.');
$FilePath
=
substr($file,
0,
strrpos($file,
'.'));
while
(true)
{
if
(is_file($file))
{
++$iCount;
$file
=
$FilePath
.
'('.
$iCount
.')'
.
$File_type;
}else{
break;
}
}
if
(fopen($file,
'w'))
{$Msg
=
'創建成功
'.$file;}
return
$Msg;
}
?>
希望本文所述對大家的PHP程序設計有所幫助。
⑻ php的文件移動及重命名
//重命名與復制文件
$new_name
= $new_path.$new_filename;
if(file_exists($new_name)||!file_exists($old_name)){
echo
"目標文件已存在或原文件不存在。";
}else{
@rename($old_name,$new_name)?'成功':'失敗';
}
//復制文件
$target_name
= $target_path.$target_filename;
if(file_exists($target_name)||!file_exists($source_name)){
echo
"目標文件已經存在或者原始文件不存在。";
}else{
@($source_name,$target_name)?'成功':'失敗';
}
//刪除文件
if(!file_exists($del_name)){
echo
"要刪除的文件不存在。";
}else{
unlink($del_name)?'成功':'失敗';
}
⑼ 如何編寫php代碼將指定文件夾內的所有文件重命名
確定你的php腳本有足夠的許可權 讀寫 abc 目錄
用 scandir("abc"); 掃描目錄內所有的文件;
用 rename($oldname,$newname); 循環遍歷上一步的文件列表(注意跳過「.」和「..」)
讀資料庫部分的代碼要你自己根據數據結構來寫。思路已經給得很清晰了,查查php手冊吧,都有詳細的說明。多動手少伸手,對你有好處。