目录与文件的基本操作一 (44)
解析目录路径
使用PHP脚本可以方便对目录进行操作,如创建目录、遍历目录、复值目录与删除目录等操作。
??常用的文件目录路径格式:
??$unixPath="/var/www/html/index.php";
//在UNIX系统中的绝对路径,必须使用"/"分隔
??$winPath="C:\\Appserv\\www\\index.php";
//在Windows系统的绝对路径,默认使用"\"分隔
??$winPath2="C:/Appserv/www/index.php";
//在Windows系统中也可使用“/”分隔。
??注意使用绝对路径与相对路径。
PHP文件路径相关函数
??basename--返回路径中的文件名部分
??语法:string basename( string path [, string suffix] )
??给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以suffix结束的,那这一部分也会被去掉。
??dirname--返回路径中的目录部分
??语法:string dirname( string path )
??给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。
$path= "/home/httpd/html/index.php";
$file= basename($path);// $file值:"index.php"
$file= basename($path, ".php"); // $file值:"index "
$file= dirname($path); // $file值:"/home/httpd/html"
?>
pathinfo--返回文件路径的信息
??语法:array pathinfo( string path [, intoptions] )
??pathinfo() 返回一个联合数组包含有path的信息。包括以下的数组单元:dirname,basename和extension。
$path_parts= pathinfo("/www/htdocs/index.html");
echo $path_parts["dirname"] . "\n"; // /www/htdocs
echo $path_parts["basename"] . "\n"; // index.html
echo $path_parts["extension"] . "\n"; // html
?>
??realpath--返回规范化的绝对路径名
??语法:string realpath( string path )
??realpath() 扩展所有的符号连接并且处理输入的path中的'/./', '/../' 以及多余的'/' 并返回规范化后的绝对路径名。返回的路径中没有符号连接,'/./' 或'/../' 成分。
遍历目录
opendir--打开目录句柄
??语法:resource opendir( string path [, resource context] )
??打开一个目录句柄,可用于之后的closedir(),readdir()和rewinddir()调用中。
??readdir--从目录句柄中读取条目
??语法:string readdir( resource dir_handle)
??返回当前目录指针位置的文件名,没有返回false,并将指针向下移动一位。文件名以在文件系统中的排序返回。
??closedir--关闭目录句柄
??语法:void closedir( resource dir_handle)
??关闭由dir_handle指定的目录流。流必须之前被opendir()所打开。
??rewinddir--倒回目录句柄
??语法:void rewinddir( resource dir_handle)
??将dir_handle指定的目录流重置到目录的开头。
统计目录大小
??disk_free_space--返回目录中的可用空间
??语法:float disk_free_space( string directory )
??给出一个包含有一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回可用的字节数。
??disk_total_space--返回一个目录的磁盘总大小
??语法:float disk_total_space( string directory )
??给出一个包含有一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回所有的字节数。
例子
<?php <span>//<span>自定义一个函数dirSize(),统计传入参数的目录大小</span><span>function dirSize($directory) { $dir_size</span>=<span>0</span>;<span>//</span><span>初值为0,用来累加各文件大小从而计算目录大小</span><span>if</span>($dir_handle=@opendir($directory)){ <span>//</span><span>打开目录并判断成功打开</span><span>while</span>($filename=readdir($dir_handle)) { <span>//</span><span>循环遍历目录</span><span>if</span>($filename!=<span>"</span><span>.</span><span>"</span> && $filename!=<span>"</span><span>..</span><span>"</span>) { <span>//</span><span>排除特殊的目录</span>$subFile=$directory.<span>"</span><span>/</span><span>"</span>.$filename; <span>//</span><span>将文件和目录相连</span><span>if</span>(is_dir($subFile)) <span>//</span><span>如果为目录</span>$dir_size+=dirSize($subFile); <span>//</span><span>求子目录的大小</span><span>if</span>(is_file($subFile)) <span>//</span><span>如果是文件</span>$dir_size+=filesize($subFile); <span>//</span><span>求出文件的大小并累加</span><span>} } closedir($dir_handle); </span><span>//</span><span>关闭文件资源</span><span>return</span> $dir_size; <span>//</span><span>返回计算后的目录大小</span><span>} } $dir_size</span>=dirSize(<span>"</span><span>phpMyAdmin</span><span>"</span>); <span>//</span><span>调函数计算目录大小,返回目录大小</span>echo round($dir_size/pow(<span>1024</span>,<span>1</span>),<span>2</span>).<span>"</span><span>KB</span><span>"</span>;<span>//</span><span>将目录字节换为“KB”单位</span>?>
建立与删除目录
mkdir--新建目录
??语法:boolmkdir(string pathname [,intmode])
??尝试新建一个由pathname指定的目录。
??rmdir--删除目录
??语法:boolrmdir( string dirname)
??尝试删除dirname所指定的目录。该目录必须是空的,而且要有相应的权限。如果成功则返回TRUE,失败则返回FALSE。
??unlink--删除文件
??语法:boolunlink ( string filename )
??删除filename。和Unix C 的unlink() 函数相似。如果成功则返回TRUE,失败则返回FALSE
<?php <span>//<span>自定义函数递归的删除整个目录</span><span>function delDir($directory) { </span><span>if</span>(file_exists($directory)) { <span>//</span><span>判断目录是否存在,如果存在则执行</span><span>if</span>($dir_handle=@opendir($directory)){ <span>//</span><span>打开返回目录资源,并判断</span><span>while</span>($filename=readdir($dir_handle)){ <span>//</span><span>遍历目录读出目录中信息</span><span>if</span>($filename!=<span>"</span><span>.</span><span>"</span> && $filename!=<span>"</span><span>..</span><span>"</span>) { <span>//</span><span>一定要排除两个特殊目录</span>$subFile=$directory.<span>"</span><span>/</span><span>"</span>.$filename;<span>//</span><span>将目录下文件和当前目录相连</span><span>if</span>(is_dir($subFile)) <span>//</span><span>如果是目录条件则成立</span>delDir($subFile); <span>//</span><span>递归调用自己删除子目录</span><span>if</span>(is_file($subFile)) <span>//</span><span>如果是文件条件则成立</span>unlink($subFile); <span>//</span><span>直接删除这个文件</span><span>} } closedir($dir_handle); </span><span>//</span><span>关闭目录资源</span>rmdir($directory); <span>//</span><span>删除空目录</span><span>} } } delDir(</span><span>"</span><span>phpMyAdmin</span><span>"</span>); <span>//</span><span>调用函数,将程序所在目录中phpMyAdmin文件夹删除</span>?>
复制与移动目录
copy--拷贝文件
??语法:boolcopy ( string source, string dest)
??将文件从source拷贝到dest。如果成功则返回TRUE,失败则返回FALSE。
??PHP中没有提供复制与移动目录的相关函数。如需要,只要自定义函数了。
文件的基本操作
文件的打开与关闭
fopen--打开文件或者URL
??语法:resource fopen( string filename, string mode [, booluse_include_path[, resource zcontext]] )
??fopen() 将filename指定的名字资源绑定到一个流上。如果filename是"scheme://..." 的格式,则被当成一个URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将filename当成一个普通的文件名继续执行下去。
??mode参数指定了所要求到该流的访问类型。
??如果也需要在include_path中搜寻文件的话,可以将可选的第三个参数use_include_path设为'1' 或TRUE。
??如果打开失败,本函数返回FALSE。
fclose--关闭一个已打开的文件指针
写入文件
fwrite--写入文件(可安全用于二进制文件)
??语法:intfwrite( resource handle, string string[, intlength] )
??fwrite() 把string的内容写入文件指针handle处。如果指定了length,当写入了length个字节或者写完了string以后,写入就会停止,视乎先碰到哪种情况。返回写入的字符数,出现错误时则返回FALSE
读取文件内容
??fread--读取文件(可安全用于二进制文件)
??string fread( inthandle, intlength )
??fread() 从文件指针handle读取最多length个字节。该函数在读取完length个字节数,或到达EOF 的时候,或(对于网络流)当一个包可用时就会停止读取文件,视乎先碰到哪种情况。
<span>php $handle </span>= fopen(<span>"</span><span>http://www.example.com/</span><span>"</span>, <span>"</span><span>rb</span><span>"</span><span>); $contents </span>= <span>""</span><span>; </span><span>while</span> (!<span>feof($handle)) { $contents .</span>= fread($handle, <span>8192</span><span>); } fclose($handle); </span>?>
fgets--从文件指针中读取一行
??语法:string fgets( inthandle [,intlength])
??从handle指向的文件中读取一行并返回长度最多为length-1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了length -1 字节后停止(看先碰到那一种情况)。如果没有指定length,则默认为1K,或者说1024 字节。
??fgetc--从文件指针中读取字符
??语法:string fgetc( resource handle )
??返回一个包含有一个字符的字符串,该字符从handle指向的文件中得到。碰到EOF 则返回FALSE。
file--把整个文件读入一个数组中
??语法:array file ( string filename [, intuse_include_path[, resource context]] )
??和readfile()一样,只除了file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败file() 返回FALSE。
??readfile--输出一个文件
??语法:intreadfile( string filename [, booluse_include_path[, resource context]] )
??读入一个文件并写入到输出缓冲。
??返回从文件中读入的字节数。如果出错返回FALSE 并且除非是以@readfile() 形式调用,否则会显示错误信息。
以上就介绍了目录与文件的基本操作一 (44),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Tukar jenis data asas kepada rentetan menggunakan fungsi String.valueOf() Java Dalam pembangunan Java, apabila kita perlu menukar jenis data asas kepada rentetan, kaedah biasa ialah menggunakan fungsi valueOf() kelas String. Fungsi ini boleh menerima parameter jenis data asas dan mengembalikan perwakilan rentetan yang sepadan. Dalam artikel ini, kami akan meneroka cara menggunakan fungsi String.valueOf() untuk penukaran jenis data asas dan menyediakan beberapa contoh kod untuk

Kaedah menukar tatasusunan char kepada rentetan: Ia boleh dicapai dengan penugasan Gunakan sintaks {char a[]=" abc d\0efg ";string s=a;} untuk membenarkan tatasusunan char terus memberikan nilai kepada rentetan, dan laksanakan. kod untuk melengkapkan penukaran.

Cara menetapkan pembolehubah persekitaran PATH dalam sistem Linux Dalam sistem Linux, pembolehubah persekitaran PATH digunakan untuk menentukan laluan di mana sistem mencari fail boleh laku pada baris arahan. Menetapkan pembolehubah persekitaran PATH dengan betul membolehkan kami melaksanakan perintah sistem dan arahan tersuai di mana-mana lokasi. Artikel ini akan memperkenalkan cara untuk menetapkan pembolehubah persekitaran PATH dalam sistem Linux dan memberikan contoh kod terperinci. Lihat pembolehubah persekitaran PATH semasa Jalankan arahan berikut dalam terminal untuk melihat pembolehubah persekitaran PATH semasa: echo$P

Gantikan aksara (rentetan) dalam rentetan menggunakan fungsi String.replace() Java Dalam Java, rentetan ialah objek tidak boleh ubah, yang bermaksud apabila objek rentetan dicipta, nilainya tidak boleh diubah suai. Walau bagaimanapun, anda mungkin menghadapi situasi di mana anda perlu menggantikan aksara atau rentetan tertentu dalam rentetan. Pada masa ini, kita boleh menggunakan kaedah replace() dalam kelas String Java untuk melaksanakan penggantian rentetan. Kaedah replace() kelas String mempunyai dua jenis:

Salam semua, hari ini saya akan berkongsi dengan anda pengetahuan asas Java: String. Tidak perlu diperkatakan kepentingan kelas String, ia boleh dikatakan sebagai kelas yang paling banyak digunakan dalam pembangunan back-end kami, jadi adalah perlu untuk membincangkannya.

Gunakan fungsi String.length() Java untuk mendapatkan panjang rentetan Dalam pengaturcaraan Java, rentetan ialah jenis data yang sangat biasa Kita selalunya perlu mendapatkan panjang rentetan, iaitu bilangan aksara dalam rentetan. Di Java, kita boleh menggunakan fungsi length() kelas String untuk mendapatkan panjang rentetan. Berikut ialah kod contoh mudah: publicclassStringLengthExample{publ

Dalam pengaturcaraan Golang, jenis bait, rune dan rentetan adalah jenis data yang sangat asas dan biasa. Mereka memainkan peranan penting dalam memproses operasi data seperti rentetan dan aliran fail. Apabila melakukan operasi data ini, kita biasanya perlu menukarnya kepada satu sama lain, yang memerlukan penguasaan beberapa kemahiran penukaran. Artikel ini akan memperkenalkan teknik penukaran jenis bait, rune dan rentetan bagi fungsi Golang, bertujuan untuk membantu pembaca memahami dengan lebih baik jenis data ini dan dapat mengaplikasikannya dengan mahir dalam amalan pengaturcaraan.

1. Memahami String1 dalam JDK Pertama, mari kita lihat kod sumber kelas String dalam JDK Ia melaksanakan banyak antara muka. Anda boleh melihat bahawa kelas String diubah suai diwarisi dan tiada subkelas kelas String, supaya semua orang yang menggunakan JDK menggunakan kelas String yang sama dua orang yang berbeza Menggunakan kaedah yang sama menunjukkan hasil yang berbeza, yang menjadikannya mustahil untuk membangunkan kod Warisan dan kaedah mengatasi bukan sahaja membawa fleksibiliti, tetapi juga menyebabkan banyak subkelas berkelakuan berbeza.
