ファイルを読み取る

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 $ file name, string mode)

string fread ( resource $operation resource, int read length)

bool fclose ( resource $operation resource)

上記の関数を通してリソースを説明しましょうタイプの操作メソッド:

1. リソースを開きます

2. 関連関数を使用して操作します

fopen 関数の機能は、ファイルを開くことです。 :

1. ファイルを開くためのパス

2. ファイルを開くモード

戻り値の型は、前の基本的な型で説明したリソース型に初めて遭遇しました。

このリソース タイプでは、このリソースを操作するために他の関数が必要です。すべてのリソースは、開いたときに閉じる必要があります。


fread関数 この関数の機能は、開いているファイルリソースを読み取ることです。指定された長さのファイル リソースを読み取り、その一部を読み取り、一部を後方に移動します。ファイルの最後まで。

fclose 関数 fclose 関数の機能は、リソースを閉じることです。リソースは開いたり閉じたりします。

関数を理解すると、最後の 2 つの関数は比較的簡単です。 fopen 関数のモードは次のとおりです。 fopen のモードについて説明します。

次に、r モードのみを学習します。レッスンの最後に、ライティング時の他のいくつかのモードについて説明します。

ファイルの書き込みをマスターする前に、まずファイルの読み取り方法を知る必要があります。

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($handle, 1024);
?>

3.ファイルを閉じる

<?php
    $fp = fopen($filename, 'r');
    $contents = fread($fp, 1024);
    fclose($fp);
    echo $contents;
?>

その他の注意事項:


QQ截图20161009101707.png


使用例:

<?php
 $fp = fopen($filename, 'ab');
 $contents = fwrite($fp, '可爱的很\n哟');
 fclose($fp);
 echo $contents;
 ?>

注:
実験の効果は肉眼では確認できません。この機能だけは覚えておいてください。

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


学び続ける
||
<?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 />'; } ?>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜