PHPのfopen関数の使い方

藏色散人
藏色散人オリジナル
2019-05-28 14:23:343117ブラウズ

php fopen 関数は、ファイルまたは URL を開くために使用されます。その構文は fopen(filename, mode, include_path, context) です。パラメータ filename は必須であり、開くファイルまたは URL を参照します。モードは必須です。 、ファイルへの要件を指します/ストリームのアクセスタイプ。

PHPのfopen関数の使い方

#phpのfopen関数の使い方は?

定義と使用法

fopen() 関数は、ファイルまたは URL を開きます。

オープンに失敗した場合、この関数は FALSE を返します。

構文

fopen(filename,mode,include_path,context)

パラメータ

ファイル名は必須です。開くファイルまたは URL を指定します。

モードは必須です。このファイル/ストリームに必要なアクセスのタイプを指定します。可能な値を以下の表に示します。

include_path オプション。 include_path 内のファイルも取得する必要がある場合は、このパラメータを 1 または TRUE に設定できます。

コンテキスト オプション。ファイルハンドルの環境を指定します。コンテキストは、ストリームの動作を変更できるオプションのセットです。

mode パラメータの可能な値

mode 説明

"r" 読み取り専用モードで開き、ファイル ポインタをポイントします。ファイルヘッダー。

"r " 読み取り/書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントします。

"w" は書き込みモードをオンにし、ファイル ポインタをファイル ヘッダーにポイントし、ファイル サイズをゼロに切り捨てます。ファイルが存在しない場合は、作成してみてください。

"w "読み取り/書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントし、ファイル サイズをゼロに切り詰めます。ファイルが存在しない場合は、作成してみてください。

"a" 書き込みモードで開き、ファイル ポインタをファイルの末尾に指します。ファイルが存在しない場合は、作成してみてください。

"a " 読み取り/書き込みモードで開き、ファイル ポインターをファイルの末尾に指します。ファイルが存在しない場合は、作成してみてください。

"x" が作成され、書き込み用に開かれ、ファイル ポインターがファイル ヘッダーを指します。ファイルが既に存在する場合、 fopen() 呼び出しは失敗し、FALSE を返し、E_WARNING レベルのエラー メッセージを生成します。ファイルが存在しない場合は、作成してみてください。

これは、基礎となる open(2) システム コールに O_EXCL|O_CREAT フラグを指定するのと同じです。

このオプションは PHP 4.3.2 以降のバージョンでサポートされており、ローカル ファイルにのみ使用できます。

"x "ファイル ポインタをファイル ヘッダーに指定して、読み取り/書き込みモードで作成して開きます。ファイルが既に存在する場合、 fopen() 呼び出しは失敗し、FALSE を返し、E_WARNING レベルのエラー メッセージを生成します。ファイルが存在しない場合は、作成してみてください。

これは、基礎となる open(2) システム コールに O_EXCL|O_CREAT フラグを指定するのと同じです。

このオプションは PHP 4.3.2 以降のバージョンでサポートされており、ローカル ファイルにのみ使用できます。

説明

fopen() filename で指定された名前リソースをストリームにバインドします。ファイル名が「scheme://...」の形式である場合、それは URL として扱われ、PHP はスキームを処理するためのプロトコル ハンドラー (ラッパー プロトコルとも呼ばれます) を検索します。ラッパー プロトコルがこのプロトコルに登録されていない場合、PHP はスクリプト内の潜在的な問題をチェックするのに役立つメッセージを発行し、通常のファイル名であるかのように filename の実行を続行します。

PHP がファイル名がローカル ファイルを指定していると判断した場合、そのファイルのストリームを開こうとします。ファイルは PHP からアクセスできる必要があるため、ファイル アクセス許可でこのアクセスが許可されていることを確認する必要があります。セーフ モードまたは open_basedir がアクティブ化されている場合は、さらに制限が適用されます。

ファイル名が登録されたプロトコルを指定しており、そのプロトコルがネットワーク URL として登録されていると PHP が判断した場合、PHP は、allow_url_fopen がアクティブ化されていることを確認します。閉じている場合、PHP は警告を発行し、fopen の呼び出しは失敗します。

コンテキストのサポートは PHP 5.0.0 で追加されました。

ヒントと注意事項

注: オペレーティング システム ファミリが異なれば、行末規則も異なります。テキスト ファイルに書き込み、新しい行を挿入する場合は、オペレーティング システムに準拠した行末を使用する必要があります。 Unix ベースのシステムでは行末文字として \n が使用され、Windows ベースのシステムでは行末文字として \r\n が使用され、Macintosh ベースのシステムでは行末文字として \r が使用されます。ファイルが間違った行末で書かれている場合、他のアプリケーションがファイルを開いたときに異常な動作をする可能性があります。

Windows には、\n を \r\n に透過的に変換できるテキスト変換タグ (「t」) が用意されています。あるいは、「b」を使用してバイナリ モードを強制し、データが変換されないようにすることもできます。これらのフラグを使用するには、モード引数の最後の文字として「b」または「t」を使用します。

デフォルトの変換モードは使用する SAPI および PHP のバージョンによって異なるため、移植性を確保するために、常に適切なタグを指定することをお勧めします。プレーン テキスト ファイルを操作しており、スクリプト内で行終端文字として \n を使用しているが、そのファイルをメモ帳などの他のアプリケーションでも読み取れるようにしたい場合は、モードで「t」を使用します。それ以外の場合はすべて「b」を使用します。

在操作二进制文件时如果没有指定 "b" 标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于 \r\n 字符的奇怪问题。

注释:为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用 "b" 标记。

注释:再一次,为移植性考虑,强烈建议你重写那些依赖于 "t" 模式的代码使其使用正确的行结束符并改成 "b" 模式。

例子

<?php
$file = fopen("test.txt","r");
$file = fopen("/home/test/test.txt","r");
$file = fopen("/home/test/test.gif","wb");
$file = fopen("http://www.example.com/","r");
$file = fopen("ftp://user:password@example.com/test.txt","w");
?>

以上がPHPのfopen関数の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。