ホームページ >バックエンド開発 >PHPチュートリアル >(上級) PHP でよく使用されるファイル操作関数
以下はPHPファイル操作関数です。もちろん、これはほんの一部であり、リストしていないものは他にもたくさんあります。
1. パスを解析します:
1 ファイル名を取得します:
basename();
ファイルへのフルパスを含む文字列を指定すると、この関数はベースファイル名を返します。ファイル名が接尾辞で終わる場合、この部分も削除されます。
例:
$path = "/home/httpd/html/index.php"; $file = basename($path,".php"); // $file is set to "index"
2 ディレクトリ部分を取得します:
dirname();
この関数は、ファイル名を削除した後のディレクトリ名を返します。
例:
$path = "/etc/passwd"; $file = dirname($path); // $file is set to "/etc"
3 パス連想配列を取得します
pathinfo();
指定されたパスの 3 つの部分 (ディレクトリ名、ベース名、拡張子) を取得します。
例:
$pathinfo = pathinfo("www/test/index.html"); var_dump($pathinfo); // $path['dirname'] $path['basename'] $path['extenssion']
2. ファイルタイプ
1. filetype();
ファイルのタイプを返します。可能な値は、fifo、char、dir、block、link、file、unknown です。
例:
echo filetype('/etc/passwd'); // file echo filetype('/etc/'); // dir
3. 指定されたファイルに関する有用な情報の配列を取得します (非常に便利です)
開かれたファイル ポインターを通じてファイル情報を取得します
ファイルによって開かれたファイルの統計を取得しますポインターハンドル情報。この関数は stat() 関数に似ていますが、ファイル名ではなく開いているファイル ポインターを操作する点が異なります。
例:
// 打开文件 $fp = fopen("/etc/passwd", "r"); // 取得统计信息 $fstat = fstat($fp); // 关闭文件 fclose($fp); // 只显示关联数组部分 print_r(array_slice($fstat, 13));2. stat()
filenameで指定されたファイルの統計情報を取得します(fstat()に類似)
のバイト数を返します。ファイル サイズ (エラー時に FALSE を返し、E_WARNING レベルのエラーを生成する場合)。
例:
// 输出类似:somefile.txt: 1024 bytes $filename = 'somefile.txt'; echo $filename . ': ' . filesize($filename) . ' bytes';
ディレクトリが配置されているディスクパーティションの空き容量(バイト単位)を取得します
eg
// $df 包含根目录下可用的字节数 $df = disk_free_space("/"); //在 Windows 下: disk_free_space("C:"); disk_free_space("D:");
の合計ディスクサイズを返します。ディレクトリ
例: (上記と同じ、関数を置き換えます)
別の: ディレクトリのサイズを計算する必要がある場合は、それを実現するための再帰関数を作成できます
コード
function dir_size($dir){ $dir_size = 0; if($dh = @opendir($dir)){ while(($filename = readdir($dh)) != false){ if($filename !='.' and $filename !='..'){ if(is_file($dir.'/'.$filename)){ $dir_size +=filesize($dir.'/'.$filename); }else if(is_dir($dir.'/'.$filename)){ $dir_size +=dir_size($dir.'/'.$filename); } } }#end while }# end opendir @closedir($dh); return $dir_size; } #end function
5. アクセスおよび変更時刻
1. fileatime(): 最終アクセス時刻2. filectime(): 最終変更時刻 (データの変更のみ)
1. fopen -- ファイルまたは URL を開きます
'r' 読み取り専用モードで開き、ファイル ポインターをファイル ヘッダーにポイントします。
'r+' 読み取り/書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントします。
'w' は書き込みモードをオンにし、ファイル ポインタをファイル ヘッダーにポイントし、ファイル サイズをゼロに切り捨てます。ファイルが存在しない場合は、作成してみてください。
「w+」は読み取り/書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントし、ファイル サイズをゼロに切り捨てます。ファイルが存在しない場合は、作成してみてください。
'a' は書き込みモードで開き、ファイル ポインタがファイルの末尾を指します。ファイルが存在しない場合は、作成してみてください。
「a+」は読み取り/書き込みモードで開き、ファイル ポインタがファイルの末尾を指します。ファイルが存在しない場合は、作成してみてください。
'x' はファイルを作成して書き込み用に開き、ファイル ポインターをファイル ヘッダーに指します。ファイルが既に存在する場合、fopen() 呼び出しは失敗して FALSE を返します。
'x+' が作成され、読み取りと書き込みのために開かれ、ファイル ポインターがファイル ヘッダーを指します。ファイルが既に存在する場合、fopen() 呼び出しは失敗し、FALSE を返します
例:
$handle = fopen("/home/rasmus/file.txt", "r");
file() がファイルを配列として返す点を除いて、file_get_contents() と同じです。配列内の各セルは、改行を含むファイル内の対応する行です。失敗すると、file() は FALSE を返します。
例:
code
$lines = file('http://www.example.com/'); // 在数组中循环,显示 HTML 的源文件并加上行号。 foreach ($lines as $line_num => $line) { echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n"; } // 另一个例子将 web 页面读入字符串。参见 file_get_contents()。 $html = implode('', file ('http://www.example.com/'));
3. fgets -- ファイルポインタから行を読み取ります
handle が指すファイルから行を読み取り、最大長 - 1 バイトの文字列を返します。 。改行文字 (戻り値に含まれる)、EOF、または長さ - 1 バイト (いずれか最初に発生した方) が読み取られたときに停止します。長さが指定されていない場合、デフォルトは 1K、つまり 1024 バイトになります。
$handle = @fopen("/tmp/inputfile.txt", "r"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); echo $buffer; } fclose($handle); }
fgets() と同じですが、fgetss は読み取ったテキストから HTML タグと PHP タグを削除しようとします。
オプションの 3 番目のパラメータを使用して、どのタグを削除しないかを指定できます
別の: ディレクトリに対する操作:
1. opendir -- ディレクトリ ハンドルを開き、以降の処理に使用できるディレクトリ ハンドルを開きます。 Closedir() 、 readdir() および rewinddir() 呼び出し内。2. readdir -- ディレクトリ ハンドルからエントリを読み取り、ディレクトリ内の次のファイルのファイル名を返します。ファイル名はファイル システム内の順序で返されます。
例:
// 注意在 4.0.0-RC2 之前不存在 !== 运算符 if ($handle = opendir('/path/to/files')) { echo "Directory handle: $handle\n"; echo "Files:\n"; while (false !== ($file = readdir($handle))) { echo "$file\n"; } while ($file = readdir($handle)) { echo "$file\n"; } closedir($handle); }
3. scandir -- 指定されたパス内のファイルとディレクトリをリストし (非常に便利)、ディレクトリ内のファイルとディレクトリを含む配列を返します。
デフォルトの並べ替え順序はアルファベット昇順です。オプションのパラメータsorting_orderが使用される(1に設定される)場合、並べ替え順序はアルファベットの降順になります。例:
りー
另外注:
七、 对文件属性的操作(操作系统环境不同,可能有所不一样,这点要注意)
1文件是否可读:
boolis_readable ( string filename )
如果由 filename 指定的文件或目录存在并且可读则返回 TRUE。
记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制。
2 文件是否可写
bool is_writable ( string filename )
如果文件存在并且可写则返回 TRUE。filename 参数可以是一个允许进行是否可写检查的目录名。
记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制
3 检查文件是否存在
boolfile_exists ( string filename )
如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE
以上就是(进阶篇) PHP常用的文件操作函数的内容,更多相关内容请关注PHP中文网(www.php.cn)!