PHP では、fwrite と file_put_contents は細部が異なりますが、パフォーマンスの点では file_put_contents の方が強力です。以下の例で比較してみましょう。
類似点: file_put_contents() 関数は文字列をファイルに書き込みます。これは fopen()、fwrite()、fclose() を順番に呼び出すのと同じ機能を持ちます。
違い: file_put_contents() 関数で FILE_APPEND を使用すると、ファイル内の既存のコンテンツの削除を回避できます。つまり、同じファイルを複数回書き込むときに追加関数を実現できます。
例:
echo file_put_contents("test.txt","Hello World. テスト中!",FILE_APPEND);
file_put_contents は文字列を append の形式で test.txt に書き込みます。
fwrtie は以前のレコードをクリアし、現在書き込まれているコンテンツのみを保持します
$file = fopen("test.txt","w");
echo fwrite($file,"Hello World. テスト中!");
fclose($file);
file_put_contents には fwrite の代わりに多くの利点があります
以下は file_put_contents のコード例です:
$filename = 'file.txt';
$word = "Hello!rnwebkaka"; //二重引用符は折り返されますが、一重引用符は折り返されません
file_put_contents($filename, $word);
?>
同じ関数に fwrite を使用するコード例:
$filename = 'file.txt';
$word = "Hello!rnwebkaka"; //二重引用符は折り返されますが、一重引用符は折り返されません
$fh = fopen($filename, "w"); //wを先頭から書き、aを追加して書きます
echo fwrite($fh, $word);
fclose($fh);
?>
上記の 2 つの例から、file_put_contents は実際には fopen、fwrite、および fclose の簡略化された記述メソッドであることがわかります。これは、一方ではコードの量が削減され、さらにはコードの最適化に役立ちます。一方、fclose がミスするルーズなコードがある場合は、デバッグやメンテナンスが非常に便利になります。
上記の例では、file_put_contentsを最初から書いていますが、追加で書きたい場合はどうすればよいでしょうか?
file_put_contentsの構文には、追加書き込み文であるFILE_APPENDというパラメータがあります。コード例は次のとおりです:
echo file_put_contents('file.txt', "これは別のものです。", FILE_APPEND);
?>
FILE_APPEND は追記書き込み用のステートメントです。追加して書き込む場合、他の人が同時に操作するのを避けるために、ファイルをロックする必要があることがよくあります。この場合、次のように記述される LOCK_EX ステートメントを追加する必要があります。
echo file_put_contents('file.txt', "これはまた別のものです。", FILE_APPEND|LOCK_EX);?>
上記のコードでは、echo がディスプレイに出力するのは、ファイルに書き込まれた文字列の長さであることに注意してください。
よくある質問:
警告: fopen(file.txt) [function.fopen]: ストリームを開けませんでした: 許可が拒否されました
ファイルに書き込み権限がないために、上記の問題が発生することがあります。このエラーを回避するには、ファイルを書き込むときにファイルが書き込み可能かどうかを判断する必要があります。これには is_writable() 関数を使用する必要があります。コード例は次のとおりです:
$filename = 'file.txt';
if (is_writable($filename)) {
echo file_put_contents($filename, "これは別のものです。", FILE_APPEND);
} その他 {
echo "ファイル $filename は書き込み可能ではありません";
}
?>
fwrite は単にデータをハンドラーに書き込むだけです
file_put_contents は contentxt を処理する必要がある可能性があり、データ型が混合されているため、より多くの処理が必要です
file_put_contents の関数の説明を見ると、 fopen()、fwrite()、fclose() を順番に呼び出したのと同じ機能です。
ただし、微妙な違いがあるはずです。特に大量のデータを繰り返し書き込む場合、file_put_contents は間違いなく fopen と fclose を繰り返します。また、fwrite は fopen と fwrite を 1 回しか実行できません
。
結論: 複数の実行結果は、fopen、fwrite、および fclose メソッドが直接 file_put_contents よりも高速であることを示しています。
ubuntu12.04を使用しています
直接 sudo apt-get ソース php5
解凍:silver@silver-desktop:~/php/php5-5.3.3
関数 fwrite function を見つけます: silver@silver-desktop:~/php/php5-5.3.3$ grep -rn “PHP_FUNCTION(fwrite)”
./ext/standard/file.c:1233:PHPAPI PHP_FUNCTION(fwrite)
./ext/standard/file.h:43:PHPAPI PHP_FUNCTION(fwrite);
fwrite
対応するソースコードを見つけます。関数は非常に簡単です:
file_put_contents
この関数にはさらに多くの処理操作があります
久しぶりに fwrite,file_put_contents ?
1、関数数原型すでに説明済み它们処理のデータ型型不一样
2、简单の文書処理、追求速度用fwrite
3、個別用の file_put_contents を書き込みます – (種類のデータはすべて処理できます、マジックアー。ただし、種類の判断機構を理解してください。保存されるデータは望ましくない可能性があります)

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版
便利なJavaScript開発ツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1
使いやすく無料のコードエディター
