写文件
在PHP中写文件比较简单。直接用fwrite()函数即可。
fwrite()的原型如下

int fwrite(resource handle/string string [">
ホームページ > バックエンド開発 > PHPチュートリアル > PHPファイル操作実装コード共有_PHPチュートリアル

PHPファイル操作実装コード共有_PHPチュートリアル

WBOY
リリース: 2016-07-21 15:24:21
オリジナル
848 人が閲覧しました

ファイルへのデータの書き込みまたは読み取りは、基本的に 3 つのステップに分かれています:
1. ファイルを開く (存在する場合)
2. ファイルを閉じる
l ファイルを開く
ファイルを開く前に、このファイルのパスと、このファイルが存在するかどうかを知る必要があります。
$_SERVER["DOCUMENT_ROOT"] 組み込みグローバル変数を使用して、サイトの相対パスを取得します。以下のように:
$root = $_SERVER[“DOCUMENT_ROOT”];
関数 file_exists() を使用してファイルが存在するかどうかを検出します。次のように:
If(!file_exists("$root/order.txt")){echo 'ファイルが存在しません';}
次に fopen() 関数を使用してファイルを開きます。
$fp = fopen("$root/order.txt",'ab');
fopen() 関数は 2、3、または 4 つのパラメーターを受け入れます。
最初のパラメータはファイルパス、2番目のパラメータは動作モード(読み取り/書き込み/追加など)であり、必須パラメータです。
$fp = fopen("$root/order.txt",'ab');
PHP で include_path 内のファイルを検索する必要がある場合は、これを指定する必要はありません。ディレクトリ名またはパス。
$fp = fopen("order.txt",'ab',true);
4 番目のパラメーターもオプションで、ファイル名をプロトコル名 (http:// など) で始めて、次の形式で開くことができます。リモート ロケーション このファイルは、ftp などの他のプロトコルもサポートしています。
fopen() がファイルを正常に開くと、そのファイルへのポインタが返されます。上記では、それを $fp 変数に保存しました。

添付ファイルモードの画像

ファイルを書く
PHP でファイルを書くのは比較的簡単です。 fwrite() 関数を直接使用してください。
fwrite() のプロトタイプは次のとおりです

int fwrite(resource handle, string string [,int length]);

3 番目のパラメータはオプションであり、書き込まれるファイルの最大長を示します。
文字列の長さは、次のように組み込みの strlen() 関数を通じて取得できます。

fwrite($fp,$outputinfo,strlen($outputinfo));

この関数は、PHP に情報を保存するように指示します。 $outputinfo をファイル内の $fp が指すポイントにコピーします。
lファイルの読み取り
1. ファイルを読み取り専用モードで開きます
fopen() 関数を引き続き使用しますが、ファイルを読み取り専用モードで開くには、「rb」ファイル モードを使用します。以下のように:

$fp = fopen("$root/order.txt",'rb');
2. ファイルがいつ読み取られたかを知る
ファイルの内容を読み取るために while ループを使用し、feof を使用します。 () 関数は、ループ条件の終了条件として使用されます。以下のように:

while(!feof($fp)){
//処理される情報
}
3. 一度に 1 行のレコードを読み取る
fgets() 関数はテキスト ファイルから 1 行のコンテンツを読み取ることができます。 。次のように:

コードをコピーします コードは次のとおりです:
$fp = fopen("$root/order.txt",'rb')
while(!feof($fp)); {
$info = fgets($fp,999);
echo $info.'
'
}
fclose($fp);
このようにして、改行文字 (n) またはファイルの終わり文字 EOF を読み取るか、ファイルから 998B を読み取るまで、データの読み取りを続けます。読み取り可能な最大長は、指定された長さから 1B を引いたものになります。
4. ファイル全体を読み取る
PHP には、ファイル全体を読み取る 4 つの異なる方法が用意されています。
a).readfile() 関数
これは、fopen($path) を使わずに、最初にファイルを閉じたり、エコーを使わずに直接使用できます。以下のようになります:
readfile(“$root/order.txt”);
ファイル情報をブラウザに自動的に出力します。そのプロトタイプは次のとおりです:
Int readfile(string filename,[int use_include_path[,resource context]]); 2 番目のオプションのパラメーターは、PHP が include_path 内のファイルを検索するかどうかを指定します。これは、fopen 関数と同じです。ファイルから読み取られた合計バイト数です。
注: fopen または fclose を使用せずに直接使用してください
b).fpassthru() 関数
この関数を使用するには、まず fopen() でファイルを開く必要があります。次に、ファイル ポインタをパラメータとして fpassthru() に渡すと、ファイル ポインタが指すファイルの内容が出力されます。次に、ファイルを閉じます。以下のように:
$fp = fopen("$root/order.txt",'rb');
fpassthru($fp);
戻り値は、読み取られた合計バイト数でもあります。ファイル 。
注: fopen と fclose が必要です
c).file() 関数
ファイルをブラウザに出力することに加えて、結果を配列に送信するのと同じです。以下のように:
$fileArray = file(“$root/order.txt”);
ファイル内の各行は配列の各要素として使用されます。
注: fopen と fclose を使用せずに直接使用します
d).file_get_contents() 関数
readfile() と同じですが、この関数はファイルの内容をブラウザに直接出力するのではなく、文字列の形式でファイルの内容を返しますつまり、次のようにエコー出力を使用する必要があります:

echo file_get_contents(“$root/order.txt”);
注: fopen と fclose を使用せずに直接使用します
fgetc()。ファイルからの関数 一度に 1 文字を読み取り、唯一の引数であるファイル ポインター関数を受け取り、次の文字を返します。次のように:



コードをコピーします
コードは次のとおりです: $fp = fopen("$root/order.txt",'rb')
while(!feof($fp)); {
$char = fgetc($fp);
if(!feof($fp)){
echo ($char == "n" ? '
' : $char);
fclose($fp );


注: fgetc() 関数の欠点の 1 つは、fgets() がファイルの終わり文字 EOF を返すのに対し、それを返さないことです。文字を読んだ後は、feof() を判断する必要があります。
6. 任意の長さの読み取り
fread() 関数は、ファイルから任意の長さのバイトを読み取ります。 関数のプロトタイプは次のとおりです。
string fread(resource fp,int length); length パラメータで指定されたバイト数が読み取られたか、ファイルの終わりが読み取られました。



コードをコピーします

コードは次のとおりです:
$fp = fopen("$root/order.txt",'rb') echo fread($fp,10); //Read 10単語 セクション fclose($fp);
lファイルを閉じる
ファイルを閉じるのは比較的簡単で、fclose() 関数を直接呼び出すだけです。 true が返された場合は成功を示します。次のように:

fclose($fp);
lファイルを削除します
unlink()関数(deleteという名前の関数はありません):

unlink("$root/order.txt"); size
次のように、filesize() 関数を使用してファイルのサイズ (バイト単位) を確認できます:
echo filesize("$root/order.txt");


次の記事も参照できます。

以下はその 1 つです。この記事は基本的なファイルの読み取りと書き込み操作についてのものです。私はこの記事を読んで基本的なファイル操作を学習しました。
ファイルの読み取り:
PHP コード:


。コードをコピーします


1. 2.
3. $file_name = "data.dat" 4. 読み取るファイルの絶対パス: homedata.dat 5. 6. $ file_pointer = fopen($file_name, "r"); 7. // ファイルを開きます。 8. "r" は、実行する操作メソッドです。 10.詳細については、この記事の後半の説明を参照してください。 11. $file_read = fread($file_pointer, filesize($file_name));
13. // ファイル ポインターを通じてファイルの内容を読み取ります。 . fclose($file_pointer);
17. // ファイルを閉じます
18. print "ファイルの内容は次のとおりです: $file_read"; // ファイルの内容を表示します
>
22.


PHP コードを書き込みます:



コードをコピーします:
1. 3. $file_name = "data.dat";
5. $file_pointer = "w ");
7. // "w" はモードです、 8. 詳細は以下を参照してください
9.
10. fwrite($file_pointer, "what you wanna write");
11. // 最初にファイルを切り取ります 12 . サイズは 0 バイトです。
15. fclose($file_pointer)
16. //
18. データを書き込みます。 .dat";
4. // 絶対パス: homedata.dat
5.
6. $file_pointer = fopen($file_name, "a");
7. // "w" モード
8.
9. fwrite ($file_pointer, "追加したいもの");
10. // いいえ 11. ファイル 12. を 0 バイトに切り取ります。 13. ファイルの末尾にデータを追加します
14. fclose($file_pointer) ; の。
複数の人が書き込みを行う場合があり (トラフィックが多い Web サイトで最も一般的です)、その結果、無駄なデータがファイルに書き込まれます。例:
info.file ファイルの内容は次のとおりです -> 1|Mukul| |インド (n)
|2|Linus|31|男性|フィンランド (n)
現在 2 人が同時に登録されているため、ファイルが破損しています->
info.file ->
|1|Mukul|15 | 男性|インド
|2|Linus|31|男性|フィンランド |3|ロブ|27|男性|アメリカ| ビル|29|男性|アメリカ 上記の例では、PHP が Rob の情報をファイルに書き込むと、ビルがたまたま書き込みを開始し、そのときにロブのレコードの「n」を書き込む必要があったため、ファイルが破損しました。 これは絶対に起こってほしくないので、ファイルのロックを見てみましょう:
PHP コード:



コードをコピーします

コードは次のとおりです:


1. 2. . $file_name = "data.dat";
5. $file_pointer = fopen($file_name, "r");
8. / 私は 4.0.2、9 を使用します。したがって、LOCK_SH、10 を使用します。1 として直接記述する必要があるかもしれません。
12. if ($lock) {
13. $file_read($file_pointer) , filesize($file_name);
23. print "ファイルの内容は $file_read";
26. .php と read2.php が必要です ファイルにアクセスすると、ファイルを読み取ることができますが、プログラムが書き込む必要がある場合は、読み取り操作が完了してファイルが解放されるまで待つ必要があります。
PHP コード:


コードは次のとおりです:


2. $file_name = "data.dat";
5. = fopen( $file_name, "w");
6. $lock = flock($file_pointer, LOCK_EX); 9. LOCK_EX を 2 に置き換えます。 10.
11. if ($lock) {
13. fwrite($file_pointer, "書き込みたい内容"); // バージョンがPHP4.0.2 よりも低い場合、
17 を 3 に置き換えます。
19. fclose($file_pointer)
23. 24. ?>
25 .


ファイルの上書きには「w」モードが使用されますが、それは適用されないと思います。
PHP コード:
コードをコピー
コードは次のとおりです:
1. 3. $file_name = "data.dat";
6. = flock($file_pointer, LOCK_EX);
8. PHP4.0.2 より前のバージョンの場合、9. LOCK_EX を 2 に置き換えます
11. if ($lock) {
13. $file_pointer , 0, SEEK_END);
14. バージョンが PHP4.0RC1 より小さい場合は、 fseek($file_pointer, filsize($file_name)) を使用します
17.何を書きたいですか" );
18. flock($file_pointer, LOCK_UN);
19. // バージョンが PHP4.0.2 未満の場合、20. LOCK_UN を 3 に置き換えます
21.
22. }
23.
24. fclose($file_pointer) ;
26. print "データがファイルに書き込まれました";
29. うーん、データの追加は少し異なります。その他の操作は、FSEEK です。 ファイルを確認する ファイルの最後にポインタを置くことを常にお勧めします。
Windows システムの場合、上記のファイルの前に '' を付ける必要があります。
FLOCK その他:
Flock() はファイルが開かれた後にのみロックします。 上記の列では、ファイルは開かれた後にロックされますが、ファイルの内容はその時点の内容のみであり、他のプログラム操作の結果は反映されません。そのため、fseek はファイルの追加だけに使用する必要はありません。操作だけでなく、読み取り操作も可能です。
(ここでの翻訳はあまり正確ではないかもしれませんが、アイデアは理解できると思います)。
モードについて:
'r' - 読み取り専用モードで開き、ファイルポインタはファイルの先頭に配置されます。
'r+' - 読み取り/書き込みモードで開き、ファイルポインタはファイルの先頭に配置されます。ファイル
'w' - 書き込み専用に開きます。ファイル ポインターはファイル ヘッダーに配置され、ファイルは 0 バイトにカットされます。ファイルが存在しない場合は、ファイルの作成を試みます
'w+' - 読み取り専用に開きます。書き込み中、ファイル ポインタはファイル ヘッダーに配置され、ファイル サイズは 0 バイトにカットされます。ファイルが存在しない場合は、ファイルの作成を試行します
'a' - 書き込み専用に開き、ファイル ポインタはファイルの末尾、ファイルが存在しない場合は、ファイルの作成を試行します
'a+' - 読み取りおよび書き込み用に開きます。ファイル ポインタはファイルの末尾に配置されます。ファイルが存在しない場合は、ファイルの作成を試行します。ファイル
ちなみに、ファイルディレクトリを作成するコード



コードをコピー

コードは次のとおりです:


//「../../../xxx/」のようなディレクトリを作成しますxxx.txt"
function createdirs ($path, $mode = 0777) //mode 077
{
$dirs =explode('/',$path);
$pos = strrpos($path, ".");
if ($pos == = false) { // 注: 3 つの等号
// パスがファイルではないディレクトリで終わることを意味します
$submount=0; else { $subamount=1; } for ($c= 0;$c $thispath="";
for ($cc=0; $cc $thispath. =$dirs[$cc].'/'
}
if (!file_exists($thispath)) {
//print "$thispath"; ; //mkdir 関数はディレクトリを作成します
}
}
}
//createdirs("xxx/xxxx/xxxx",) などの呼び出し
//元の関数は $GLOBALS["dirseparator"] を使用していましたが、それを変更しました'/' に
function recur_mkdirs($path , $mode = 0777) //mode 0777
{
//$GLOBALS["dirseparator"]
$dirs =explode($GLOBALS["dirseparator"],$path);
$pos = strrpos($path, " .");
if ($pos === false) { // 注: 3 つの等号
// パスがファイルではなくディレクトリで終わっていることを意味します
$subamount= 0;
}
else {
$subamount =1;


これらは初心者にとって非常に役立つと思います





http://www.bkjia.com/PHPjc/324316.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/324316.html

技術記事

ファイルへのデータの書き込みまたは読み取りは、基本的に 3 つのステップに分かれています: 1. ファイルを開く (存在する場合) 2. ファイルの書き込み/読み取り 3. ファイルを閉じる l ファイルを開く ファイルを開く前に、...

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート