php文件夾函數
『壹』 php 中的mkdir問題
file_exist()函數用來判斷文件或者文件夾是否存在,存在返回true,不存在返回false
mkdir()創建一個指定的文件目錄,成功返回true,失敗返回false
這段代碼的意思是,首先判斷$destination_folder目錄是否存在,如果不存在,則創建該目錄
『貳』 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操作文件的函數)
php文件操作之小型留言本實例本文實例講述了php文件操作之小型留言本。分享給大家供大家參考。具體如下:
Index.php文件如下:
?php
$path
=
"DB/";
//定義路徑
$dr
=
opendir($path);
//打開目錄
while($filen
=
readdir($dr))
//循環讀取目錄中的文件
{
if($filen
!=
"."
and
$filen
!=
"..")
{
$fs
=
fopen($path.$filen,
"r");
echo
"B標題:/B".fgets($fs)."BR";
echo
"B作者:/B".fgets($fs)."BR";
echo
"B內容:/BPRE".fread($fs,
filesize($path.$filen))."/PRE";
echo
"HR";
fclose($fs);
}
}
closedir($dr)
//關閉目錄
?
Post.php文件如下:
?php
$path
=
"DB/";
$filename
=
"S".date("YmdHis").".dat";
$fp
=
fopen($path.$filename,
"w");
fwrite($fp,
$_POST["title"]."/n");
fwrite($fp,
$_POST["author"]."/n");
fwrite($fp,
$_POST["content"]."/n");
fclose($fp);
echo
"留言發表成功!";
echo
"a
href="Index.php"
mce_href="Index.php"返回首頁/a";
?
!DOCTYPE
HTML
PUBLIC
"-//W3C//DTD
HTML
4.01
Transitional//EN"
""
html
head
title發表新的留言/title
meta
http-equiv="Content-Type"
content="text/html;
charset=gb2312"
/head
body
H1p
align="center"發表新的留言/p/H1
form
name="form1"
method="post"
action="Post.php"
table
width="500"
border="0"
align="center"
cellpadding="0"
cellspacing="0"
tr
td標題/td
tdinput
name="title"
type="text"
id="title"
size="50"/td
/tr
tr
td作者/td
tdinput
name="author"
type="text"
id="author"
size="20"/td
/tr
tr
td內容/td
tdtextarea
name="content"
cols="50"
rows="10"
id="content"/textarea/td
/tr
/table
p
align="center"
input
type="submit"
value="Submit"
input
type="reset"
value="Reset"
/p
/form
/body
/html
希望本文所述對大家的php程序設計有所幫助。
php是什麼格式的文件,怎麼播放(打開)?
1、PHP,是超級文本預處理語言(HypertextPreprocessor)的縮寫。
PHP它是一種HTML內嵌式的語言,是一種在伺服器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言。
2、首先找到一個php文件,如下圖所示。
3、滑鼠右擊php文件,在彈出來的列表中選擇「打開方式(H)」,如下圖所示。
4、在打開的方式的選項中選擇「記事本」,如下圖所示。
5、然後就可以在記事本中看到php的代碼了,如下圖所示。
6、滑鼠php文件,在出現的列表中選擇「Notepad++」,如下圖所示。
7、然後可以看到在Notepad++中打開的php代碼如下圖所示,可以看到此時php代碼顯示不同顏色,這是Notepad++自帶的高顯亮。
PHP繞過open_basedir限制操作文件的三種方法由於open_basedir的設置對system等命令執行函數是無效的,所以我們可以使用命令執行函數來訪問限制目錄。
我們首先創建一個目錄
且在該目錄下新建一個1.txt內容為abc
再在該目錄下創建一個目錄命名為b
並且在該目錄下創建一個1.php文件內容為
且在php.ini中設置好我們的open_basedir
我們嘗試執行1.php看看open_basedir是否會限制我們的訪問
執行效果如圖
很明顯我們無法直接讀取open_basedir所規定以外的目錄文件。
接下來我們用system函數嘗試繞open_basedir的限制來刪除1.txt
編輯1.php為
先來看看執行1.php之前的文件情況
執行1.php之後
我們先來了解一下symlink函數
symlink函數將建立一個指向target的名為link的符號鏈接,當然一般情況下這個target是受限於open_basedir的。
由於早期的symlink不支持windows,我的測試環境就放在Linux下了。
測試的PHP版本是5.3.0,其他的版本大家自測吧。
在Linux環境下我們可以通過symlink完成一些邏輯上的繞過導致可以跨目錄操作文件。
我們首先在/var/www/html/1.php中編輯1.php的內容為
接著在/var/www/中新建一個1.txt文件內容為
再來設置一下我們的open_basedir
在html目錄下編輯一個php腳本檢驗一下open_basedir
執行看下。
意料之中,文件無法訪問。
我們執行剛才寫好的腳本,1.php
此時tmplink還是一個符號鏈接文件,它指向的路徑是c/d,因此exploit指向的路徑就變成了
由於這個路徑在open_basedir的范圍之內所以exploit成功建立了。
之後我們刪除tmplink符號鏈接文件再新建一個同名為tmplink的文件夾,這時exploit所指向的路徑為
由於這時候tmplink變成了一個真實存在的文件夾所以tmplink/../../變成了1.txt所在的目錄即/var/www/
然後再通過訪問符號鏈接文件exploit即可直接讀取到1.txt的文件內容
當然,針對symlink()只需要將它放入disable_function即可解決問題,所以我們需要尋求更多的方法。
glob是php自5.3.0版本起開始生效的一個用來篩選目錄的偽協議,由於它在篩選目錄時是不受open_basedir的制約的,所以我們可以利用它來繞過限制,我們新建一個目錄在/var/www/下命名為test
並且在/var/www/html/下新建t.php內容為
執行結果如圖:
成功躲過open_basedir的限制讀取到了文件。
php實現編輯和保存文件的方法文章主要介紹了php實現編輯和保存文件的方法,涉及php針對文件的讀取、編輯和保存操作的'相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下。
本文實例講述了php實現編輯和保存文件的方法。分享給大家供大家參考。具體如下:
save_file.php:
?php
session_start();
$handle=fopen($_POST['original_file_name'],"w");
$text=$_POST['file_contents'];
if(fwrite($handle,$text)==FALSE){
$_SESSION['error']='spanclass="redtxt"Therewasanerror/span'
}else{
$_SESSION['error']='spanclass="redtxt"Fileeditedsuccessfully/span'
}
fclose($handle);
header("Location:".$_POST['page']);
?
read_file.php:
!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
""
htmlxmlns=""
head
metahttp-equiv="Content-Type"content="text/html;charset=iso-8859-1"/
titleUntitledDocument/title
/head
formaction="savecontents.php"method="post"
textareaname="file_contents"style="width:700px;height:600px;"
?php
$fileName="location/of/orignal/file/my_file.php";
$handle=fopen($fileName,"r");
while(!feof($handle)){
$text=fgets($handle);
echo$text;
}
?
/textarea
inputtype="hidden"value="?echo$fileName;?"name="original_file_name"/
/form
body
/body
/html
希望本文所述對大家的php程序設計有所幫助。
『肆』 PHP獲取文件夾大小函數用法實例
本文實例講述了PHP獲取文件夾大小函數用法。分享給大家供大家參考。具體如下:
?
//
獲取文件夾大小
function
getDirSize($dir)
{
$handle
=
opendir($dir);
while
(false!==($FolderOrFile
=
readdir($handle)))
{
if($FolderOrFile
!=
"."
&&
$FolderOrFile
!=
"..")
{
if(is_dir("$dir/$FolderOrFile"))
{
$sizeResult
+=
getDirSize("$dir/$FolderOrFile");
}
else
{
$sizeResult
+=
filesize("$dir/$FolderOrFile");
}
}
}
closedir($handle);
return
$sizeResult;
}
//
單位自動轉換函數
function
getRealSize($size)
{
$kb
=
1024;
//
Kilobyte
$mb
=
1024
*
$kb;
//
Megabyte
$gb
=
1024
*
$mb;
//
Gigabyte
$tb
=
1024
*
$gb;
//
Terabyte
if($size
<
$kb)
{
return
$size."
B";
}
else
if($size
<
$mb)
{
return
round($size/$kb,2)."
KB";
}
else
if($size
<
$gb)
{
return
round($size/$mb,2)."
MB";
}
else
if($size
<
$tb)
{
return
round($size/$gb,2)."
GB";
}
else
{
return
round($size/$tb,2)."
TB";
}
}
echo
getRealSize(getDirSize('需要獲取大小的目錄'));
?>
希望本文所述對大家的php程序設計有所幫助。