dcarbone / curl-header-extractor
用于从PHP CURL请求中提取头信息的实用工具。
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);