答えて
NULLは、私はあなたのユースケースを知っているが、この例を考慮していないASCII 0x00の
fwrite($fh,chr(0));
エスケープシーケンス\0
printf("\0");
fwrite($fh, chr(0));
//or
fwrite($fh, "\0");
//or
fwrite($fh, "\x0");
あるだろう:あなたは整数のファイル配列に書き込む必要があり、配列メンバのいくつかはNULLかもしれません。あなたは(1バイトである)\ 0としてNULL書き込み、整数は32ビット(4バイト)である:最初のアレイメンバー
AA 22 BB 44 00 51 27 AF 1A ...今
は、AA 22でありますBB 44では、2番目の値はNULLまたは00 51 27 AF(有効な整数値)です。 \ 0 \ 0 \ 0 \ 0をNULLとして使用した場合、問題は解決されません。これは再び有効な整数値なのでです。
私の意見では、シリアル化を使用した方が良いでしょう。
数値をバイナリとして書くことに問題がある場合、pack()を使用する必要があります。http://uk3.php.net/manual/en/function.pack.phpドキュメントの「注意」に注意してください –
私はpack()がこの特定の場合に役立つとは思わない。 pack()は固定フォーマットが必要ですが、この場合はありません。あなたは32ビット整数でNULLを表現することはできません。この問題がどのように解決されているかに注目してください。 MySQLで。 32ビット整数は実際には33ビットであり、最後のビットはNULL値を表すために使用されます。したがって、pack()では似たようなことが必要ですが、serialize()ではそうではありません。出力サイズが重要な場合にのみ、pack()が優れています。 – Tomik
- 1. ASCII NULL文字
- 2. XML文字エンティティの参照
- 3. エンティティの文字列がNULLの場合、SQLのデフォルト値を使用します。
- 4. C:memcpy()NULL文字で
- 5. htmlエンティティ/特殊文字デコード
- 6. 削除のNULL文字列::
- 7. 文字列内のhtml文字エンティティを置換する
- 8. フランス語の文字をhtmlのエンティティ
- 9. Silverlight 2とXMLの文字エンティティ
- 10. Java文字列hashCode null string
- 11. null文字列例外
- 12. 空文字列対NULL
- 13. null終端文字ポインタ
- 14. flowtype-文字列がnull
- 15. QRegExpとNull文字Qt
- 16. SqlDataRecord.SetString - null文字列エラー
- 17. XmlTextWriterとnull文字列
- 18. SqoopインポートNULL文字列
- 19. Delphi - NULL終端文字
- 20. null文字列ターミネーターをC++の文字列で省略する
- 21. はNULLを文字列に変換します(空文字または文字通りNULLです)
- 22. 文字列をエンティティに変換する
- 23. rubyデコード文字列(ポストフィルタx-escエンティティ)
- 24. AlljoynのバスメッセージにNULL文字の問題
- 25. django nullと空の文字列
- 26. Cの文字列がNULLになる
- 27. C++の文字列とnullバイト
- 28. 空の文字列は、NOT NULL
- 29. オブジェクトプロパティのnull値が "null"文字列に変換される
- 30. 文字列からNULL文字を削除する方法
「\ 0」を使用することもできます。これは、sprintfを使用している場合に便利です。 – Leigh