PHP中rename()函數(shù)的妙用講解
大家都知道,rename()
函數(shù)可以對文件或目錄進(jìn)行重命名的操作。其實(shí)它還可以做很多事情。
熟悉unix的朋友應(yīng)該知道shell命令mv,它相當(dāng)與win32的移動,而且移動的同時(shí)可進(jìn)行重命名。我發(fā)現(xiàn),php的rename()函數(shù)就相當(dāng)于mv,它不僅僅只有簡單的重命名的功能,同樣可以改變文件甚至整個(gè)目錄的路徑。
例如:
$oldpath ----文件或目錄原來路徑
$newpath ----新定義路徑
那么 rename($oldpath,$newpath)就可以完成文件/目錄移動的操作
經(jīng)過我的測試,win32和unix的php4版本都支持這個(gè)功能。
另外,好象php4的win32版取消了unlink()函數(shù)。那么還可以巧用rename()函數(shù)來完成刪除的操作,例如:
$path ---- 文件或目錄路徑
$tmp ---- tmp目錄(/tmp)
用rename($path,$tmp) 將文件移動到tmp目錄.
網(wǎng)上有一種方法是copy+unlink來移動文件,但是遇到大文件時(shí)會消耗大量時(shí)間,對性能不怎么友好,可以使用rename()
來移動文件,速度非???/p>
關(guān)于rename()函數(shù)
bool rename ( string $oldname , string $newname [, resource $context ] ) 嘗試把 oldname 重命名為 newname,若操作成功則返回True,失敗返回False。
注意:
1. 對于非空文件夾,只能在同一盤符下移動。
2. 對于空文件夾,rename()可以在不同盤符間移動。但是目標(biāo)文件夾的父目錄必須存在。
3. 對于文件,rename()也能在不同盤符之間移動。
實(shí)列代碼:
rename("/file1/www.txt", "/file2/my_file.txt");
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
- 現(xiàn)在很多網(wǎng)站都存在跨站腳本攻擊漏洞,讓黑客有機(jī)可乘.跨站攻擊很容易就可以構(gòu)造,而且非常隱蔽,不易被查覺(通常盜取信息后馬上跳轉(zhuǎn)回原頁面)。如何攻擊,在此不作介紹,主要談?wù)勅绾畏婪丁?/div> 2015-09-09
PHP+Apache實(shí)現(xiàn)二級域名之間共享cookie的方法
這篇文章主要介紹了PHP+Apache實(shí)現(xiàn)二級域名之間共享cookie的方法,涉及Apache的配置、hosts修改及php cookie操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-07-07PHP編碼轉(zhuǎn)換函數(shù) 自動轉(zhuǎn)換字符集支持?jǐn)?shù)組轉(zhuǎn)換
當(dāng)我們在接受未知客戶端提交的數(shù)據(jù),由于各客戶端的編碼不統(tǒng)一,但在我們的服務(wù)器端最終只能以一種編碼方式來處理,這種情況下就會涉及到編碼轉(zhuǎn)換問題2012-12-12php將access數(shù)據(jù)庫轉(zhuǎn)換到mysql數(shù)據(jù)庫的方法
這篇文章主要介紹了php將access數(shù)據(jù)庫轉(zhuǎn)換到mysql數(shù)據(jù)庫的方法,可實(shí)現(xiàn)讀取access數(shù)據(jù)庫數(shù)據(jù)并寫入到mysql數(shù)據(jù)庫中,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12PHP中使用虛代理實(shí)現(xiàn)延遲加載技術(shù)
這篇文章主要介紹了PHP中使用虛代理實(shí)現(xiàn)延遲加載技術(shù),延遲加載是一種領(lǐng)域模型設(shè)計(jì)一種架構(gòu)模式,需要的朋友可以參考下2014-11-11php中DOMDocument簡單用法示例代碼(XML創(chuàng)建、添加、刪除、修改)
PHP寫XML方法很多,這里主要介紹一下DOMDocument的用法,跟 JS大體上相同,其實(shí)非常簡單。2010-12-12最新評論