PHP のファイル処理も非常に重要なモジュールです。この記事の主な内容は、PHP のファイル システムの紹介です。
ファイルシステムの目的
1. プロジェクト処理はファイル処理と切り離せない
2. ファイルはデータを長期間保存するために使用できます
3. サーバーでファイル操作を実行します ファイルシステム関数 使い方詳細
1. 基本判定関数
is_dir — 指定されたファイル名がディレクトリかどうかを判定file_exists — ファイルまたはディレクトリが存在するかどうかを確認するis_file — 指定されたファイル名がファイルかどうかを判定
is_executable — 指定されたファイル名がディレクトリであるかどうかを判定実行可能です
is_link — 指定されたファイル名がシンボリック リンクかどうかを判断します
is_readable — 指定されたファイル名が読み取り可能かどうかを判断します
is_uploaded_file — ファイルが HTTP POST 経由でアップロードされたかどうかを判断します
is_writable — 指定された
ファイルを判断しますname 書き込み可能かどうかis_writeable — is_writable のエイリアス
2. ファイル関連の情報を取得する
fileatime — ファイルの最終アクセス時刻を取得する
filectime — ファイルの変更時刻を取得します
filegroup — ファイルのグループを取得します
fileinode — ファイルの i ノードを取得します
filemtime — ファイルの変更時刻を取得します
fileowner — ファイルの所有者を取得します
fileperms — ファイルの権限を取得します
filesize — ファイル サイズを取得します
filetype — ファイルの種類を取得します
ファイル名を渡してその詳細を出力する例を以下に書きましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
関数getFileInfo($ファイル名) ){ f(!! ; } if(is_file ($ファイル名)){ はファイルです;
「はディレクトリです」 $ファイル名)){ echo $filename.. $filename.' は実行可能ファイルではありません '; if (is_readable ($ファイル名)) { hecho $ ファイル名 .」読めます '; }} Lse { echo $filename.' は読み取れません'; ($ ファイル名)){ は書き込み可能です'; } } Lse { エコー $ ファイル名.. echo'ファイル「.$filename.」のサイズは「.getFileSize(filesize($filename))」です」; "File". $ファイル名のタイプ.' は '.ファイルタイプ( $ ファイル名).''; echo 'ファイル'.$ファイル名.'の所有者は '.fileowner($filename).''です。ファイル「.$filename.」の最終アクセス時刻は「.getTime」です(fileatime($ファイル名)).''; のオードは「」です。 fileinode($ファイル名) .''; 「ファイル」の変更時刻.$ファイル名.' は' .getTime(filemtime($ファイル名).''; echo' ファイル '.$filename.' の権限は '.fileperms($filename).''; 機能getTime($ 時間){ return date('Y-m-d',$time ; } 関数getFileSize ($サイズ){ ($サイズ pow (2,40 ){ $サイズ/ パウ(2,40) )、2); dw ='PB'; サイズ>=pow(2, 30)){ $サイズ=round($size/pow(2,30),2); $dw='TB'; }elseif($サイズ> ;=pow(2,20)){ $サイズ=ラウンド($ サイズ/パウ(2,20),2); $dw ='GB'; }elseif($サイズ>= パウ(2,10) ){ $サイズ=round($ サイズ/パウ(2,10 $$$ dw='MB'; } 返品 $サイズ.$dw; } getFileInfo ('1.php'); 実行結果 1.phpはファイルです 3.ファイルパス関連機能 相対パス: 上位ディレクトリと下位ディレクトリからの相対パス現在のディレクトリ . 現在のディレクトリ パス区切り記号 linux/Unix “/” 絶対パス: オペレーティング システムのルートを参照することも、Web サイトが保存されているドキュメント ルート ディレクトリを参照することもできます サーバーで実行される場合 (PHP ファイル処理 関数によって実行される) 、パス「ルート」はオペレーティング システムのルートを指します ファイル名部分を返します 1 ; $url2= ; $url3= ; エコーベース名 ( url1); echo basename($url2); echo basename ($url3); エコー ベース名($url4);
実行結果 index.php basename関数が最後の項目であるファイルの名前を返していることがわかります。 $ url1 ="./aaa/bbb/index.php"; $url2="../www/yyy/login.rar"; $url3="c:/appserv/www/demo.html"; $ url4="http:/ /localhost /yyy/www.gif"; echodirname(dirname($url1)); echo dirname($url2); echo dirname( $url3); エコー dirname($url4); ランニング結果 ./aaa dirname 関数は複数レベルのネストで使用できることがわかります。返されるのは、それが配置されているパス、つまりすべての項目です。最後の項目を除いて。 ファイル名と拡張子を含む上記のパス情報のすべての情報を取得できます ファイルをコピーします たとえば、次の例は 3 "./php.apahce" );//ファイルを作成リンク解除( 「C:/AppServ/www/」 xsphp/apache.php" ; //ファイルを削除("./test.txt", "d:/test2.txt") ); // ファイルの名前を変更しますcopy("cache.txt", "./cache5.txt") ;/ /ファイルをコピー chmod("a.txt", ); //ファイルのアクセス許可を設定します 権限関連コンテンツ rwx はこのファイルの所有者を表します r 読み取り w 書き込み x 実行 4 $str = ( " 1.txt");echo$str; ?> 同様に、ファイルはリモート ファイルである場合もあります。 、パラメータは http://www.qq.com に渡されます は Tencent のホームページ コンテンツを表示できます。 ファイルを書き込みます。filename は書き込まれたファイルのファイル名、content は書き込まれた内容、戻り値は正常に書き込まれた文字の長さです。 2 file_put_内容("2.txt" 'abcd ' );?> 2.txt ファイルが作成されますファイルが存在し、文字 abcd を書き込みます。文字列。文字列の長さである 4 を返します。 ファイルが存在する場合、ファイルは空になり、文字列が書き込まれ、書き込み長が返されます。
2 =ファイル "1.txt");var_dump($str); エコーカウント( $str) ?> 行の内容を配列形式で取得し、行数を出力できます。 欠点: 指定された部分の内容を読み取ることができません。 4.fopen(filename,mode) filename は ファイル名で、パスと名前、またはリモート サーバー ファイルを指定できます。 モードはファイル rを開く方法で、読み取り専用モード 注: r+ には読み取りおよび書き込み属性があり、ファイルの先頭から書き込みを開始し、元のファイルで上書きされていないコンテンツ; w+ には読み取りおよび書き込み属性があり、書き込み時にファイルが存在する場合、そのファイルはクリアされて最初から書き込まれます。 ファイルリソースを返します 5.fwrite(file,content) ファイル書き込み関数、fileはfopen関数で取得したファイルリソース、contentは書き込み内容です。 fputs 関数と同じです。 たとえば php $file=fopen("1.txt","r+"); $結果 =fwrite($file,"xx"); if ($結果){ エコー「成功」; 「失敗」; } ?> 6 に設定します。 fread(file,size)read ファイルの指定された部分の長さ、file はファイル リソース、返されるオブジェクトfopen によって、size は読み取られた文字の長さです。
$content=f読み取り ($ファイル,)ファイルサイズ ("1.txt")); echo$content ;? > ただし、上記のファイルサイズメソッドはローカルファイルサイズしか取得できず、リモートファイルを読み取るには別のメソッドが必要です。 例 $file=fopen("http://www.qq.com","r"); $ str =""; しながら(!feof($file)){ / /ファイルの終わりまでの時間を判断します $str.=fread($file,1024); } echo$str; ?>
1 $file=fopen("http://www.qq.com","r"); $str=""; $count=0; ながら(! feof($file)){ $str.=fgets($file) ); $count++; } エコー$count; ? > 結果は 8893 になります。ソース ファイルをチェックして、合計行数を確認し、それを確認するだけです。 7.fgetc(file) は、fgetsメソッドと非常に似ており、fileはファイルリソースであり、毎回文字を読み取ります。たとえば、テンセントのホームページに何文字あるのかを読み取ります。 $file=fopen("http://www.qq.com","r"); $str=""; $count=0; ながら(! feof($file)){ $str.=fgetc($file) ); $count++; } エコー$count; ? > 上記のコードはすべての文字数を出力します。 8.ftell(file) ftellは現在読み取られているファイルのポインタ位置を返します。fileはファイルリソースであり、fopenによって返されるオブジェクトです。 9.fseek(file,offset,whence) file ファイル システム ポインターは、通常は fopen() によって作成されるリソースです。 オフセット オフセット。 ファイルの終わりより前の位置に移動するには、offset に負の値を渡し、そこから SEEK_END に設定する必要があります。 whence SEEK_SET – オフセットバイトに等しい位置を設定します。 SEEK_CUR – 位置を現在位置にオフセットを加えたものに設定します。 SEEK_END – ファイルの末尾にオフセットを加えた位置を設定します。 10.rewind($file) ファイルヘッダーに戻ります。fileはファイルリソースです たとえば php $file =fopen("1.txt","r"); エコーftell( $file )." echo フレッド( $file , 10)." エコー ftell($file)." fseek ( $file,20,SEEK_CUR);//現在のポインターが 20 単位進みます エコーftell($ file)." echo 読んだ( $file ,10)." エコーftell ($file)." fシーク( $file,-20,SEEK_END);// ポインタはファイルの終わりの最初の 20 文字に移動します echo ftell($file)." echofread ($file,10)." echo ftell($file)." rewind($file);//ファイルの先頭に戻る echoftell($file)." > 840 operation 2 3 4
fwrite($file,"xxx"); 群れ($file,LOCK_UN ) } ?>
以上、PHP の高度な機能 2: ファイル処理について、その側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。
|