1. ファイル ディレクトリの操作
最上位のディレクトリはディスク ルート ディレクトリです。「/」または「//」を使用して
現在のディレクトリ./
../ を指定し、Apache ディレクトリを指定します。 htdocs ディレクトリ
1 .ディレクトリの作成と削除 mkdir
コードをコピー コードは次のとおりです:
if(mkdir("./path",0700)) //カレントディレクトリにパスディレクトリを作成します。
echo "作成に成功しました"; <🎜; >
2. 現在のディレクトリを取得および変更します。
getcwd() 関数を使用して現在の作業ディレクトリを取得します。この関数にはパラメータがありません。成功した場合は現在の作業ディレクトリを返し、失敗した場合は FALSE を返します。
3. ディレクトリ ハンドルを開いて閉じます。
opendir($dir)
closed($dir_handle)
4. ディレクトリの内容を読み取ります。
readdir()、このパラメータはすでに開かれているディレクトリ ハンドルであり、while ループでディレクトリを走査するために使用できます。
5. 指定されたパス内のディレクトリとファイルを取得します。
array scandir(string $directory [, int $sorting_order [, resource $context ]])
説明: $directory は指定されたパスです。パラメータ $sorting_order はデフォルトでアルファベット昇順でソートされます。1 に設定すると、アルファベット降順でソートされます。
$context はオプションのパラメータであり、stream_context_create() 関数を使用して生成できるリソース変数です。この変数には、特定の操作オブジェクトに関連するデータが格納されます。
関数が成功すると、指定されたパスにあるすべてのディレクトリとファイル名を含む配列が返されます。失敗した場合は、FALSE が返されます。
2. ファイルを開く一般的な方法
3.ファイルを閉じる
1 .ファイルを開きます
resource fopen(string $filename , string $mode [, bool $use_include_path [, resource $context ]])
●$filename パラメーター。 fopen() 関数は、$filename パラメーターで指定された名前リソースをストリーム
●$mode パラメーターにバインドします。 $mode パラメータは、fopen() 関数がファイルにアクセスするモードを指定します。値は表 4.5 に示されています。
$mode
説明
'r'
読み取り専用モードでファイルを開き、ファイルヘッダーから読み取りを開始します
'r+'
読み取り/書き込みモードでファイルを開きます、ファイルヘッダーから読み取りと書き込みを開始します
'w'
書き込みモードでファイルを開き、ファイルポインターをファイルヘッダーにポイントします。ファイルが既に存在する場合は、既存のコンテンツを削除します。ファイルが存在しない場合は、ファイルの作成を試みます。
'w+'
ファイルを読み取り/書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントします。ファイルが既に存在する場合は、既存のコンテンツを削除します。ファイルが存在しない場合は、ファイルを作成してください。
'a'
ファイルを書き込みモードで開き、ファイル ポインタをファイルの末尾に向けます。ファイルにすでにコンテンツがある場合は、ファイルの最後から書き込みが開始されます。ファイルが存在しない場合は、ファイルの作成を試みます。
'a+'
読み取り/書き込みモードでファイルを開き、ファイル ポインタをファイルの末尾にポイントします。ファイルにすでにコンテンツが含まれている場合、読み取りと書き込みはファイルの末尾から開始されます。ファイルが存在しない場合は、ファイルの作成を試みます
'x'
書き込み用にファイルを作成して開き、ファイル ポインターをファイル ヘッダーにポイントします。ファイルが既に存在する場合、 fopen() 呼び出しは失敗して FALSE を返し、E_WARNING レベルのエラー メッセージが生成されます。ファイルが存在しない場合は、ファイルの作成が試行されます。このオプションは PH 以降のバージョンでサポートされており、ローカル ファイルに対してのみ使用できます。
'x+'
ファイル ポインターをファイル ヘッダーにポイントして、読み取り/書き込みモードでファイルを作成して開きます。ファイルが既に存在する場合、 fopen() 呼び出しは失敗して FALSE を返し、E_WARNING レベルのエラー メッセージが生成されます。ファイルが存在しない場合は、ファイルの作成が試行されます。このオプションは PH 以降のバージョンでサポートされており、ローカル ファイル
'b'
バイナリ モードでのみ使用でき、他のモードの背後で接続するために使用されます。ファイル システムがバイナリ ファイルとテキスト ファイルを区別できる場合 (Windows では区別できますが、UNIX では区別できません)、このオプションを使用する必要があります。移植性を最大限に高めるために、常にこのオプションを使用することをお勧めします。
●$use_include_path パラメータ。 。 include_path (PHP のインクルード パス、PHP の設定ファイルで設定) 内のファイルを検索する必要がある場合、
オプションのパラメーター $use_include_path の値を 1 または TRUE に設定できます。デフォルトは FALSE です。
●$contextパラメータ。オプションの $context パラメータは、ファイルがリモートで開かれる場合 (HTTP 経由で開く場合など) にのみ使用されます。これは、fopen() 関数の特定の操作オブジェクトに関連するデータを格納するリソース変数
です。 fopen() が HTTP アドレスを開く場合、
は、リクエスト タイプ、HTTP バージョン、および HTTP リクエストのその他のヘッダー情報を記録します。FTP アドレスを開く場合、
は FTP パッシブ/アクティブ モードを記録します。 🎜> 2. ファイルを閉じます
bool fclose(resource $handle)
4. ファイルの書き込み
ファイルが存在しない場合は、最初にファイルを作成する必要があります。 () 関数作成
●fwrite() ファイルを開いた後、ファイルに内容を書き込みます
int fwrite(resource $handle, string $string [, int $length])
説明: パラメータ$handle が書き込まれます データのセクションの後に書き込みを停止するファイル ハンドル。
●file_put_contents()関数。 PHP 5 では、file_put_contents() 関数も導入されました。この関数の機能は、fopen()、fwrite()、fclose() 関数を順番に呼び出したのと同じです。構文形式は次のとおりです。
int file_put_contents(string $filename, string $data [, int $flags [, resource $context ]])
説明: $filename は、データが保存されるファイルの名前です。書かれること。
$data は書き込まれる文字列です。$data は配列にすることもできますが、多次元配列にすることはできません。
FTP または HTTP を使用してリモート ファイルにデータを書き込む場合、オプションのパラメーター $flags および $context を使用できますが、ここでは詳しく説明しません。
この関数は、書き込みが成功した後に書き込まれたバイト数を返します。それ以外の場合は、FALSE を返します。
●fputcsv()関数。 CSV は一般的に使用されるファイル形式で、通常は拡張子が .csv です。 CSV 形式はファイルの 1 行をレコードとして扱い、レコード内のフィールドはカンマで区切られます。
PHP の fputcsv() 関数を使用して、指定された配列を CSV ファイル形式に準拠した内容にフォーマットし、ファイル ポインターが指す現在の行を書き込みます。構文形式は次のとおりです。
int fputcsv(resource $handle [, array $fields [, string $delimiter [, string $enclosure ]]])
説明: パラメーター $handle は、ファイル ハンドルです。書かれた。
パラメータ $fields はフォーマットされる配列です。
オプションの $delimiter パラメータは、フィールド区切り文字 (1 文字のみ使用可能) を設定するために使用されます。デフォルトはカンマです。
オプションの $enclosure パラメータはフィールド ラッパーを設定します (1 文字のみが許可されます)。デフォルトは二重引用符です
5 ファイルの読み取り
1. 任意の長さを読み取ります
fread() 関数を使用できますファイルの内容を読み取るための構文形式は次のとおりです:
string fread(int $handle, int $length)
説明: パラメータ $handle はオープン ファイル ポインタ、
$length は指定された読み取りの最大バイト数、$length の最大値は 8192 です。
$length バイトを読み取る前にファイルの終わりフラグ (EOF) が検出された場合、読み取られた文字が返され、読み取り操作が停止します。
読み取りが成功した場合は読み取った文字列を返し、エラーが発生した場合は FALSE を返します。
注: ファイルを読み取った後にファイルの内容を表示する場合、テキストには HTML タグなど、直接表示できない文字が含まれる場合があります。
現時点では、htmlspecialchars() 関数を使用して HTML タグをエンティティに変換し、ファイル内の文字を表示する必要があります。
2. ファイル全体を読み込みます
●file()関数。 file() 関数は、ファイル全体を配列に読み取るために使用されます。構文形式は次のとおりです。
array file(string $filename [, int $use_include_path [, resource $context ]])
説明:この関数は、ファイルを配列として返します。
失敗した場合は、配列内の対応する行を返します。パラメータ$filenameは読み込むファイル名です。パラメータ$use_inclue_pathと$contextの意味は、以前紹介した
●readfile()関数と同じです。 readfile() 関数は、ファイルの内容をブラウザに出力するために使用されます。構文形式は次のとおりです。
int readfile(string $filename [, bool $use_include_path [, resource $context ]])
●fpassthru()関数。 fpassthru() 関数は、指定されたファイル ポインターを現在位置から EOF まで読み取り、結果を出力バッファーに書き込みます。
この関数を使用するには、まず fopen() 関数を使用してファイルを開き、次にファイル ポインタをパラメータとして fpassthru() 関数に渡す必要があります。
fpassthru() 関数は、ファイルの内容を送信します。標準出力へのファイルポインタが指すファイル。操作が成功した場合は読み取られたバイト数を返し、それ以外の場合は FALSE を返します。
●file_get_contents()関数。 file_get_contents() 関数は、ファイルの内容の全体または一部を文字列に読み取ることができます。
関数は、fopen()、fread()、および fclose() 関数を順番に呼び出すことと同じです。構文形式は次のとおりです。
string file_get_contents(string $filename [, int $offset [, int $maxlen ]])
説明: $filename は読み取るファイル名で、オプションのパラメーター $offset です。
関数は、先頭の先頭からのオフセットからファイルを指定できます。$offset で指定された位置から $maxlen の長さのコンテンツを返すことができます。失敗した場合、関数は FALSE を返します
3. データ行を読み取ります
●fgets() 関数。 fgets() 関数は、ファイルからテキスト行を読み取ることができます。構文形式は次のとおりです。
string fgets(int $handle [, int $length])
説明: $handle は、開かれたファイル ハンドルです。 、オプションのパラメータ $length は、行末文字を考慮して、最大 length-1 バイトの文字列を返すことができます。 $length が指定されていない場合、デフォルトは 1024 バイトになります
●fgetss() 関数は基本的に fgets() と同じですが、fgetss() 関数は読み取ったテキストから html タグと php タグを削除しようとします。
●fgetcsv()関数。 fgetcsv() 関数は、指定されたファイルの現在行を読み取り、CSV 形式を使用してフィールドを解析し、これらのフィールドを含む配列を返すことができます。
構文形式は次のとおりです。
array fgetcsv(int $handle [, int $length [, string $delimiter [, string $enclosure ]]])
4. 文字を読み取ります
fgetc () 関数。 fgetc() 関数は、ファイル ポインターから文字を読み取ることができます。構文形式は次のとおりです。
string fgetc(resource $handle)
この関数は、$handle ポインターが指すファイル内の文字を返します。 EOF が見つかった場合は FALSE
5. 指定された形式の
fscanf() 関数を使用してファイルを読み取ります。 fscanf() 関数は、ファイル内のデータを読み取り、指定された形式に従ってフォーマットし、配列を返すことができます。構文は次のとおりです。
mixed fscanf(resource $handle , string $format [,mixed &$... ])
フォーマット文字列内の空白は、入力ストリーム内の空白と一致します。
これは、フォーマット文字列内のタブ文字「t」であっても、入力ストリーム内のスペース文字と一致することを意味します。
6. ファイルのアップロードとダウンロード
1. ファイルのアップロード
ファイルのアップロードは、HTML フォームを送信することで実行できます。ファイルはアップロード後、デフォルトで一時ディレクトリに保存されます。このとき、一時ディレクトリから削除するか、他の場所に移動する必要があります
。PHP の move_uploaded_file() を使用して別の場所に移動します
move_uploaded_file() 関数の構文形式は次のとおりです:
bool move_uploaded_file(string $filename, string $destination)
注: 確認する必要があります。ファイルを移動する前 ファイルが HTTP POST 経由でアップロードされるかどうかに関係なく、これを使用すると、悪意のあるユーザーがスクリプトをだまして、他の方法ではアクセスできないファイルにアクセスできないようにすることができます。
この場合、is_uploaded_file() 関数を使用する必要があります。 。この関数のパラメータはファイルの一時ファイル名です。ファイルが HTTP POST 経由でアップロードされた場合、関数は TRUE を返します。
例 4.5 HTML フォームからアップロードした GIF 画像ファイルを HTML ディレクトリに移動します
コードをコピーします コードは次のとおりです:
コードは次のとおりです: