(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_write — ソケットに書き込む
関数 socket_write() は、
data の内容をソケット
socket に書き込みます。
socket
data書き込まれるバッファ。
length
オプションのパラメータ length で、
ソケットに書き込むバイト数を指定することが可能です。
この値が data より大きい場合、自動的に data のサイズに切り詰められます。
ソケットへの書き込みに成功したデータのバイト数を返します。失敗した場合に false を返します。
エラーコードは socket_last_error()
を用いて取得することができ、この値を socket_strerror()
に渡すことでエラー情報を文字列で取得可能です。
注意:
socket_write() がゼロを返すことも十分ありえます。 これは、書き込むデータが存在しなかったことを意味します。 エラーをチェックするために
falseかどうかを調べる際には、必ず===演算子を使用しましょう。
| バージョン | 説明 |
|---|---|
| 8.0.0 |
socket は、Socket クラスのインスタンスになりました。
これより前のバージョンでは、リソース型でした。
|
| 8.0.0 |
length は、nullable になりました。
|
注意:
socket_write() は、
dataの内容を必ずしもすべて 書き込むとは限りません。ネットワークバッファの状態にもよりますが、 ある量のデータだけ、たとえば 1 バイトだけ書き込まれたのであったとしても、 そしてdataのサイズがそれより大きかったとしても、 それはエラーではなく正常な動作です。 そのため、dataの残りが転送されたことを保証するには、 ループを使う必要があります。