関数・クラス解説

fwrite

version:PHP 4, PHP 5, PHP 7 (公式)

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

公式リファレンス

書式

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

説明

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

パラメータ

handle
fopen()を使用して作成したファイルシステムポインタリソース。
string
書き込む文字列。
length
lengthパラメータが与えられている場合、 lengthバイト数分の書き込みが完了したか、 stringが終わりに達したかのいずれか早い方の 事象により書き込みは中止されます。 length パラメータが指定されている場合、 magic_quotes_runtime 構成オプションは無視され、stringからの スラッシュ文字の取り除きは行われないことに注意してください。

返値

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

注意

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

$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() - ファイルの内容を全て文字列に読み込む
  • pack() - データをバイナリ文字列にパックする
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール