dcarbone/curl-header-extractor

用于从PHP CURL请求中提取头信息的实用工具。

v3.0.3 2021-02-14 17:54 UTC

This package is auto-updated.

Last update: 2024-09-15 01:41:29 UTC


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);