前のセクションでは、ファイル操作について説明しました。ファイルの読み取りは、最もよく使用される機能の 1 つです。
readfileはファイルを読み取ります
それでは、どうやってファイルを読み取るのでしょうか?まずは関数を学習しましょう。
int readfile (string $filename)
機能: ファイルパスを渡し、ファイルを出力します。
以下のコードでは、ファイル名または指定されたファイルパスが渡される限り、ファイルが読み取られます。
<?php //linux类的读了方式 readfile("/home/paul/test.txt"); //windows类的读取方式 readfile("c:\boot.ini"); ?>
注: 上記のコードの Windows スラッシュはスラッシュであり、一部の文字はエスケープされる場合があります。したがって、書くときはスラッシュを 2 つ書きます。
file_get_contentsでファイルを開きます
上記は単純にファイルを開いた直後の出力です ファイルを開いた後に変数に代入できる操作方法はありますか?
PHP は確かにこのメソッドを提供します。このメソッドは、PHP がファイルを開いてコンテンツを返す方法の 1 つです。関数を見てみましょう:
string file_get_contents ( string filename)
関数: ファイルまたはファイル パスを渡し、ファイルを開きます。そしてファイルの内容を返します。ファイルの内容は文字列です。
<?php $filename = 'NoAlike.txt'; $filestring = file_get_contents($filename); echo $filestring; ?>
上記のコードはファイルを開き、ファイルの内容を出力します。
これまでの知識に基づいてコードを拡張してみましょう。これまでの知識を活用してください。
<?php //假设我们有一个多行的文件叫NoAlike.txt,没有的话你可以新建一个这个文件 $filename = 'NoAlike.txt'; //打开这个文件,将文件内容赋值给$filestring $filestring = file_get_contents($filename); //因为每一行有一个回车即\n,我用\n来把这个字符串切割成数组 $filearray = explode("\n", $filestring); //把切割成的数组,下标赋值给$key,值赋值给$val,每次循环将$key加1。 while (list($key, $val) = each($filearray)) { ++$key; $val = trim($val); //用的单引号,单引号不解释变量进行了拼接而已 print 'Line' . $key .':'. $val.'<br />'; } ?>
上記では、これまでに学んだ知識を組み合わせました。
fopen、fread、および fclose 操作はファイルを読み取ります
ファイルを開く上記の file_get_contents メソッドは単純かつ粗雑です。以下の
resource fopen (string $filename, string mode)
string fread (resource $operation resource, int read length)
bool fclose (resource $operation resource)
上記を通ってみましょうリソースタイプの一般的な操作方法を説明します:
1. リソースを開きます
2. 関連する関数を使用して操作します
3. fopen関数の機能ファイルを開くには、2 つの主なパラメータがあります:
1. ファイルを開くためのパス
2. ファイルを開くモード
戻り値の型は、先ほど説明したリソースの型です。最初に前の基本タイプに遭遇したとき 到達するリソースタイプ。このリソース タイプでは、このリソースを操作するために他の関数が必要です。すべてのリソースは、開いたときに閉じる必要があります。 fread関数 この関数の機能は、開いているファイルリソースを読み取ることです。指定された長さのファイル リソースを読み取り、その一部を読み取り、一部を後方に移動します。ファイルの最後まで。 fclose関数 fclose関数の機能はリソースを閉じることです。リソースは開いたり閉じたりします。 関数を理解すると、最後の 2 つの関数は比較的簡単です。 fopen 関数のモードは何ですか? fopen のモードは次のとおりです: これとは対照的に、「b」を使用してデータが変換されないようにバイナリ モードを強制することもできます。これらのフラグを使用するには、モード引数の最後の文字として「b」または「t」を使用します。 モード 説明 r ファイルを読み取り専用で開きます。 mode ポインタはファイルヘッダを指します。 r+ 読み取り/書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントします。 w 書き込みモードで開き、ファイルポインタをファイルヘッダーにポイントし、ファイルサイズをゼロに切り詰めます。ファイルが存在しない場合は、ファイルの作成を試みます ファイルの書き込みをマスターする前に、まずファイルの読み取り方法を知る必要があります。 w+ 読み取り/書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントし、ファイル サイズをゼロに切り詰めます。ファイルが存在しない場合は、書き込みモードでファイルを開き、ファイル ポインタをファイルの末尾に指定してください。ファイルが存在しない場合は、ファイルを作成し、ファイル ポインタをファイルの末尾に指定して読み取り/書き込みモードで開きます。ファイルが存在しない場合は、ファイル ポインタをファイル ヘッダーに指定して、ファイルを作成して書き込み用に開きます。ファイルが既に存在する場合、 fopen() 呼び出しは失敗し、FALSE を返し、E_WARNING レベルのエラー メッセージを生成します。ファイルが存在しない場合は、ファイルを作成し、ファイル ポインタをファイル ヘッダーにポイントして読み取り/書き込みモードで開きます。ファイルが既に存在する場合、 fopen() 呼び出しは失敗し、FALSE を返し、E_WARNING レベルのエラー メッセージを生成します。ファイルが存在しない場合は、作成してみます。次に、r モードのみを学習します。レッスンの最後に、書き込み時の他のモードについて説明します。 3.ファイルを閉じる1.ファイルを開く <?php
//你可以创建一个NoAlike.txt,以只读模式打开
$fp = fopen('NoAlike.txt', "r");
//var_dump()操作一下$fp看看效果,输出的是不是只有类型提示的是resource
var_dump($fp);
?>
2.ファイルを読む <?php
$fp = fopen('NoAlike.txt', "r");
//打开一个文件类型后,读取长度
$contents = fread($fp, 1024);
?>
b<?php
$fp = fopen($filename, 'r');
$contents = fread($fp, 1024);
fclose($fp);
echo $contents;
?>
その他の注意事項:ウィンドウ全般 n に切り替えるrn バイナリオープンモード 説明: 実験は肉眼では見ることができません。この機能だけは覚えておいてください。 Windows には、n を rn に透過的に変換するためのテキスト変換タグ ('t') が用意されています。 次のセクション