dcarbone / curl-file-header-extractor
v3.0.3
2021-02-14 17:54 UTC
Requires
- php: >=7.4
- ext-mbstring: *
Replaces
README
从 PHP CURL 请求中提取头信息的实用工具。
安装
虽然建议使用 Composer,但此库足够简单,无需它也可以使用。
Composer 需求条目
{ "dcarbone/curl-header-extractor": "v3.0.*" }
用法
有 3 种可用方法
getHeaderAndBody
此方法接受一个参数,可以是
- 文件的完整路径
- 使用 fopen 创建的文件资源,至少具有读取权限。
- 响应数据的字符串
响应将是一个具有以下结构的数组
array( // array of headers, // string of body content );
示例
list($headers, $body) = \DCarbone\CURLHeaderExtractor::getHeaderAndBody($input);
其中 $headers
将是一个包含头信息的数组,如果没有找到头信息,则为 NULL,而 $body
将是整个正文的内容。
注意
如果处理的是特别大的响应,此方法可能会非常昂贵,因为最终结果将是整个文件内容加载到内存中。
如果您只想提取头信息,以下方法可能更适合您。
extractHeadersAndBodyStartOffset
此方法将返回一个具有以下结构的数组
array( // array of headers, // integer representing the byte offset of the beginning of the body );
示例
list($headers, $bodyByteOffset) = \DCarbone\CURLHeaderExtractor::extractHeadersAndBodyStartOffset($input);
如果在文件中没有看到任何头信息,上述示例中的 $headers
将为 NULL,字节偏移量为 0。
removeHeadersAndMoveFile
此方法将删除文件中的头信息,将正文复制到新文件中,然后删除旧文件。
示例
\DCarbone\CURLHeaderExtractor::removeHeadersAndMoveFile($file, 'my_new_filename.ext');
如果您已经执行了 extractHeadersAndBodyStartOffset 方法,您可以作为第三个参数传递正文开始偏移量整数。
调用
为了让这个类更容易作为“辅助工具”使用,它实现了 PHP 魔法方法 __invoke(您可以在 这里 看到实现)。
这允许您做如下操作
$extractor = new \DCarbone\CURLHeaderExtractor(); list($headers, $body) = $extractor($input);
当然,您可以像访问任何静态方法一样访问其他方法
list($headers, $bodyByteOffset) = $extractor::extractHeadersAndBodyStartOffset($input);