ftruncate
glob
ファイルシステム 関数
PHP Manual

# fwrite

(PHP 4, PHP 5)

fwrite — バイナリセーフなファイル書き込み処理

### 説明

int fwrite ( resource `$handle` , string `$string` [, int `$length` ] )

fwrite()は`string`の内容を `handle`が指しているファイル・ストリームに書き込みます。

### パラメータ

`handle`

  fopen() を使用して作成したファイルシステムポインタリソース。

`string`

  書き込む文字列。

`length`

  `length`パラメータが与えられている場合、 `length`バイト数分の書き込みが完了したか、 `string`が終わりに達したかのいずれか早い方の 事象により書き込みは中止されます。

  `length` パラメータが指定されている場合、 magic_quotes_runtime 構成オプションは無視され、`string`からの スラッシュ文字の取り除きは行われないことに注意してください。

### 返り値

fwrite() は、 書き込んだバイト数、またはエラー時に `FALSE` を返します。

### 注意

> 注意: ネットワークストリームへの書き込みは、 すべての文字列を書き込み終える前に終了する可能性があります。 fwrite() の返り値を確かめるようにしましょう。

> `<?php
> function fwrite_stream($fp, $string) {
> for ($written = 0; $written < strlen($string); $written += $fwrite) {
> $fwrite = fwrite($fp, substr($string, $written));
> if ($fwrite === false) {
> return $written;
> }
> }
> return $written;
> }
> ?>`

> 注意: (Windowsのように)バイナリとテキストファイルの形式が異なるシステムにおいては、ファイルをオープンする際に fopen()の mode パラメータに 'b' を指定する必要があります。

> 注意: fopen() を使用して追記モードでオープンした `handle` の場合、 fwrite() はアトミックになります (ただし、一部のプラットフォームにおいて `string` がファイルシステムのブロックサイズを超えない場合、 そしてローカルファイルシステム上のファイルである場合に限ります)。 アトミックであるとは、つまり fwrite() をコールする前にリソースを flock() する必要がないということです。データの書き込みが中断されることはありません。

> 注意: 同じファイルポインタに 2 回書き込みを行うと、 データはファイルの末尾に追記されます。

> `<?php
> $fp = fopen('data.txt', 'w');
> fwrite($fp, '1');
> fwrite($fp, '23');
> fclose($fp);
> // 'data.txt' の中身は 123 となります。23 ではありません!
> ?>`

### 例

例1 簡単な fwrite() の例

`<?php
$filename = 'test.txt';
$somecontent = "Add this to the file\n";
// ファイルが存在しかつ書き込み可能かどうか確認します
if (is_writable($filename)) {
// この例では$filenameを追加モードでオープンします。
// ファイルポインタはファイルの終端になりますので
// そこがfwrite()で$somecontentが追加される位置になります。
if (!$handle = fopen($filename, 'a')) {
echo "Cannot open file ($filename)";
exit;
}
// オープンしたファイルに$somecontentを書き込みます
if (fwrite($handle, $somecontent) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}
echo "Success, wrote ($somecontent) to file ($filename)";
fclose($handle);
} else {
echo "The file $filename is not writable";
}
?>`

### 参考

- fread() - バイナリセーフなファイルの読み込み
- fopen() - ファイルまたは URL をオープンする
- fsockopen() - インターネット接続もしくはUnix ドメインソケット接続をオープンする
- popen() - プロセスへのファイルポインタをオープンする
- file_get_contents() - ファイルの内容を全て文字列に読み込む

ftruncate
glob
ファイルシステム 関数
PHP Manual