ホームページ  >  記事  >  バックエンド開発  >  PHPでファイルのすべてのデータを文字列に保存する方法

PHPでファイルのすべてのデータを文字列に保存する方法

青灯夜游
青灯夜游オリジナル
2021-08-06 15:09:153656ブラウズ

前回の記事では、ファイル全体を一度に読み込んで全データを取得する方法を紹介しましたので、興味のある方はリンクをクリックして「phpファイル操作:取得方法」をご覧ください。ファイルの全データを一度に 》。今回は、ファイル全体を一度に読み込む別の方法を紹介しますので、必要に応じて参照してください。

今回紹介する方法は、ファイル全体を一度に読み取るだけでなく、読み取ったファイルの内容を文字列に保存することもできるので、すごいと思いませんか?これには、PHP 組み込み関数 file_get_contents() を使用する必要があります。今日はこの関数について学びましょう。

「test.txt」ファイルを例に、ファイルの内容は次のとおりです:

PHPでファイルのすべてのデータを文字列に保存する方法

まずは使い方を見てみましょう。 file_get_contents() 関数 ファイルを読み取り、内容を文字列に格納します。

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = &#39;test.txt&#39;;
$filestr = file_get_contents($file);
if($filestr){
  echo $filestr;
}else{
  echo &#39;读取失败!&#39;;
}
?>

出力結果:

PHPでファイルのすべてのデータを文字列に保存する方法

ファイル操作をオープンまたはクローズする必要はなく、「##」を使用するだけであることがわかります。 #file_get_contents($file )" ステートメントは、ファイル全体を一度に読み取ることができます。これは、前に紹介した readfile() 関数とよく似ていますが、それでも異なります。file_get_contents() 関数は、読み取ったデータをファイルに保存します。 string、readfile() 関数は出力バッファに保存されます。

したがって、readfile() 関数は、echo や print などの出力ステートメントを必要とせずに、「

readfile($file);」だけで出力できます。この関数には出力ステートメントの使用が必要です。読み取った内容「echo file_get_contents($file)」を出力します。

file_get_contents() 関数の使用法を詳しく見てみましょう:

file_get_contents($filename,$include_path,$context,$offset,$max_length)この関数のみ必須パラメータ $filename (読み取るファイルはファイル名またはファイル パスにすることができます) ですが、省略されたパラメータが 4 つあります: $include_path (デフォルト値 FALSE) )、$context (ファイル ハンドル環境。値は NULL にすることができます)、$offset (読み取りの開始位置)、$max_length (読み取ったバイト数)。

このうち、

$offset パラメータはリモート ファイルには使用できません。$max_length パラメータを省略すると、ファイルの内容全体がリモート ファイルに読み込まれます。上記の例のようにデフォルトです。

$offset パラメータと $max_length パラメータを見てみましょう。

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = &#39;test.txt&#39;;
$filestr1 = file_get_contents($file,FALSE,NULL,3);
echo $filestr1;
$filestr2 = file_get_contents($file,FALSE,NULL,0,15);
echo "<br>".$filestr2;
?>

出力結果:


PHPでファイルのすべてのデータを文字列に保存する方法

#$max_length パラメータが 15 に設定されていることがわかりますが、獲得キャラが7つしかないのですがなぜでしょうか?

これは、file_get_contents() 関数では、UTF-8 でエンコードされた中国語文字の長さが 3 文字を占めるためです。また、設定した取得長に満たない場合、取得できない漢字は「

?」と表示されます。 ###番号。 <pre class="brush:php;toolbar:false">&lt;?php header(&quot;Content-Type: text/html;charset=utf-8&quot;); //设置字符编码 $file = &amp;#39;test.txt&amp;#39;; $filestr1 = file_get_contents($file,FALSE,NULL,6); echo $filestr1; $filestr2 = file_get_contents($file,FALSE,NULL,0,16); echo &quot;&lt;br&gt;&quot;.$filestr2; $filestr3 = file_get_contents($file,FALSE,NULL,0,18); echo &quot;&lt;br&gt;&quot;.$filestr3; ?&gt;</pre>出力結果:

PHPでファイルのすべてのデータを文字列に保存する方法わかりました。他に知りたいことがある場合は、これをクリックしてください。 → →

php ビデオチュートリアル

最後に、古典的なコース「

PHP 文字列処理 (翡翠少女般若心経編)

」を読むことをお勧めします。無料です。ぜひ学んでください。 !

以上がPHPでファイルのすべてのデータを文字列に保存する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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