Curl::stream_body( resource|CurlHandle $handle, string $data ): integer

In this article

Collect data as it’s received

Parameters

$handleresource|CurlHandlerequired
cURL handle
$datastringrequired
Body data

Return

integer Length of provided data

Source

public function stream_body($handle, $data) {
	$this->hooks->dispatch('request.progress', [$data, $this->response_bytes, $this->response_byte_limit]);
	$data_length = strlen($data);

	// Are we limiting the response size?
	if ($this->response_byte_limit) {
		if ($this->response_bytes === $this->response_byte_limit) {
			// Already at maximum, move on
			return $data_length;
		}

		if (($this->response_bytes + $data_length) > $this->response_byte_limit) {
			// Limit the length
			$limited_length = ($this->response_byte_limit - $this->response_bytes);
			$data           = substr($data, 0, $limited_length);
		}
	}

	if ($this->stream_handle) {
		fwrite($this->stream_handle, $data);
	} else {
		$this->response_data .= $data;
	}

	$this->response_bytes += strlen($data);
	return $data_length;
}

Changelog

VersionDescription
1.6.1Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.