(PHP 5, PHP 7, PHP 8)
stream_copy_to_stream — データをあるストリームから別のストリームにコピーする
$from,$to,$length = null,$offset = 0
現在の位置(offset が 0
より大きい場合は offset の位置)から最大
length バイトのデータを
from から to
にコピーします。もし length が null の
場合は、from にある残りすべてのデータが
コピーされます。
コピーされたバイト数を返します。失敗した場合に false を返します。
| バージョン | 説明 |
|---|---|
| 8.0.0 |
length は、nullable になりました。
|
例1 stream_copy_to_stream() の例
<?php
$src = fopen('http://www.example.com', 'r');
$dest1 = fopen('first1k.txt', 'w');
$dest2 = fopen('remainder.txt', 'w');
echo stream_copy_to_stream($src, $dest1, 1024) . " バイトが first1k.txt にコピーされました\n";
echo stream_copy_to_stream($src, $dest2) . " バイトが remainder.txt にコピーされました\n";
?>注意:
fromがブロックモードのソケットストリームの場合、 タイムアウト時間内にデータを受信できなかった時点で、 終端に達していなくてもコピーを終了します。 このとき、それまでに読み込んだデータがすでにtoに書き込まれているにもかかわらず、falseが返されることがあります。 このタイムアウトは、デフォルトでは default_socket_timeout の値になり、stream_set_timeout() で変更できます。