(PHP 5, PHP 7, PHP 8)
stream_copy_to_stream — Copia datos desde un flujo hacia otro
$from,$to,$length = null,$offset = 0
Realiza una copia de hasta length bytes de datos
desde from hacia to,
comenzando en la posición actual de from, o en
offset si es mayor que 0.
Si length es null, se copiará todo el contenido
restante de from.
fromEl flujo de origen
toEl flujo de destino
lengthNúmero máximo de bytes a copiar. Por omisión, se copian todos los bytes restantes.
offset
Si es mayor que 0, la posición en
from, contada desde el inicio del flujo,
en la que comenzar la copia: from se mueve
primero a esa posición, como con fseek() y
SEEK_SET.
Si es 0 (el valor por omisión) o negativo, no se
realiza ninguna búsqueda y la copia comienza en la posición actual de
from.
Devuelve el número total de bytes copiados, o false si ocurre un error.
| Versión | Descripción |
|---|---|
| 8.0.0 |
length ahora es nullable.
|
Ejemplo #1 Ejemplo con 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) . " bytes copiados a first1k.txt\n";
echo stream_copy_to_stream($src, $dest2) . " bytes copiados a remainder.txt\n";
?>Nota:
Cuando
fromes un flujo de socket en modo bloqueante, la copia se detiene en cuanto no se reciben datos dentro del tiempo límite del flujo, aunque no se haya alcanzado el final del flujo. Entonces puede devolversefalse, aunque los datos leídos hasta ese momento ya se hayan escrito ento. Este tiempo límite es por omisión default_socket_timeout y puede cambiarse con stream_set_timeout().