彩虹外链网盘源码PHP网盘与外链分享程序资源
2024-12-30 01:58 浏览:59
# PSR-7 Message Implementation
This repository contains a full [PSR-7](https://www.php-fig.org/psr/psr-7/)
message implementation, several stream decorators, and some helpful
functionality like query string parsing.
[![Build Status](https://travis-ci.org/guzzle/psr7.svg?branch=master)](https://travis-ci.org/guzzle/psr7)
# Stream implementation
This package comes with a number of stream implementations and stream
decorators.
## AppendStream
`GuzzleHttpPsr7AppendStream`
Reads from multiple streams, one after the other.
```php
use GuzzleHttpPsr7;
$a = Psr7Utils::streamFor('abc, ');
$b = Psr7Utils::streamFor('123.');
$composed = new Psr7AppendStream([$a, $b]);
$composed->addStream(Psr7Utils::streamFor(' Above all listen to me'));
echo $composed; // abc, 123. Above all listen to me.
```
## BufferStream
`GuzzleHttpPsr7BufferStream`
Provides a buffer stream that can be written to fill a buffer, and read
from to remove bytes from the buffer.
This stream returns a "hwm" metadata value that tells upstream consumers
what the configured high water mark of the stream is, or the maximum
preferred size of the buffer.
```php
use GuzzleHttpPsr7;
// When more than 1024 bytes are in the buffer, it will begin returning
// false to writes. This is an indication that writers should slow down.
$buffer = new Psr7BufferStream(1024);
```
## CachingStream
The CachingStream is used to allow seeking over previously read bytes on
non-seekable streams. This can be useful when transferring a non-seekable
entity body fails due to needing to rewind the stream (for example, resulting
from a redirect). Data that is read from the remote stream will be buffered in
a PHP temp stream so that previously read bytes are cached first in memory,
then on disk.
```php
use GuzzleHttpPsr7;
$original = Psr7Utils::streamFor(fopen('http://www.google.com', 'r'));
$stream = new Psr7CachingStream($original);
$stream->read(1024);
echo $stream->tell();
// 1024
$stream->seek(0);
echo $stream->tell();
// 0
```
## DroppingStream
`GuzzleHttpPsr7DroppingStream`
Stream decorator that begins dropping data once the size of the underlying
stream becomes too full.
```php
use GuzzleHttpPsr7;
// Create an empty stream
$stream = Psr7Utils::streamFor();
// Start dropping data when the stream has more than 10 bytes
$dropping = new Psr7DroppingStream($stream, 10);
$dropping->write('01234567890123456789');
echo $stream; // 0123456789
```
## FnStream
`GuzzleHttpPsr7FnStream`
Compose stream implementations based on a hash of functions.
Allows for easy testing and extension of a provided stream without needing
to create a concrete class for a simple extension point.
```php
use GuzzleHttpPsr7;
$stream = Psr7Utils::streamFor('hi');
$fnStream = Psr7FnStream::decorate($stream, [
'rewind' => function () use ($stream) {
echo 'About to rewind - ';
$stream->rewind();
echo 'rewound!';
}
]);
$fnStream->rewind();
// Outputs: About to rewind - rewound!
```
## InflateStream
`GuzzleHttpPsr7InflateStream`
Uses PHP's zlib.inflate filter to inflate deflate or gzipped content.
This stream decorator skips the first 10 bytes of the given stream to remove
the gzip header, converts the provided stream to a PHP stream resource,
then appends the zlib.inflate filter. The stream is then converted back
to a Guzzle stream resource to be used as a Guzzle stream.
## LazyOpenStream
`GuzzleHttpPsr7LazyOpenStream`
Lazily reads or writes to a file that is opened only after an IO operation
take place on the stream.
```php
use GuzzleHttpPsr7;
$stream = new Psr7LazyOpenStream('/path/to/file', 'r');
// The file has not yet been opened...
echo $stream->read(10);
// The file is opened and read from only when needed.
```
## LimitStream
`GuzzleHttpPsr7LimitStream`
LimitStream can be used to read a subset or slice of an existing stream object.
This can be useful for breaking a large file into smaller pieces to be sent in
chunks (e.g. Amazon S3's multipart upload API).
```php
use GuzzleHttpPsr7;
$original = Psr7Utils::streamFor(fopen('/tmp/test.txt', 'r+'));
echo $original->getSize();
// >>> 1048576
// Limit the size of the body to 1024 bytes and start reading from byte 2048
$stream = new Psr7LimitStream($original, 1024, 2048);
echo $stream->getSize();
最新新闻
iPhone手机清理(iPhone手机清理垃圾)
iPhone手机清理:优化你的设备性能与存储空间 随着科技的飞速发展,iPhone已成为我们日常生活中不可或缺的一部分。然而,
手机微信文件怎么传到电脑上(手机微信文件怎么传到电脑上打印出来)
《手机微信文件如何传到电脑上》 随着科技的进步,我们的生活越来越离不开手机和电脑。在日常工作和生活中,我们经常需要
三国志曹操传手机版下载(三国志曹操传手机版下载最新版本)
《三国志曹操传手机版下载》——重温经典,掌中天下 在当今数字化时代,手机游戏已经成为人们生活中不可或缺的一部分。而
oppo手机锁屏密码忘了怎么办(oppo手机锁屏密码忘了怎么办最简单的方法型号a23m)
OPPO手机锁屏密码忘了怎么办 一、引言 在现代社会,手机已成为我们日常生活中不可或缺的一部分。OPPO手机因其出色的性
64g的手机
关于《64G的手机》的文章 随着科技的飞速发展,智能手机已经成为了我们日常生活中不可或缺的一部分。而内存作为手机性能
b站直播手机屏幕(b站直播手机屏幕太小)
关于《B站直播手机屏幕》的文章 随着互联网的普及和科技的飞速发展,直播行业日益繁荣。在众多直播平台中,B站以其独特的
大同证券手机版下载(大同证券手机版下载官网)
大同证券手机版下载指南 随着移动互联网的发展,越来越多的人选择使用手机进行证券投资。大同证券作为一款受欢迎的证券交
手机上电脑(手机上电脑端口怎么打开)
《手机上电脑》:重新定义移动办公与娱乐体验 随着科技的飞速发展,智能手机已经成为我们日常生活中不可或缺的一部分。如
手机位置跟踪(手机位置跟踪怎么关闭)
关于手机位置跟踪的文章 随着科技的快速发展,手机已经成为我们日常生活中不可或缺的一部分。然而,随着手机使用的普及,
回合手机游戏(回合手机游戏有哪些)
回合手机游戏:策略与乐趣的融合 随着移动设备的普及,手机游戏已成为人们休闲娱乐的重要方式之一。其中,回合手机游戏因
本企业新闻