Php pecl_http 已加载,但未定义任何函数

Php pecl_http loaded, but not defining any functions

我正在尝试使用 http_build_str()http_build_url() 函数。我已经安装并启用了 pecl_http,但我仍然收到此错误:

Call to undefined function http_build_str()

我已经上下左右验证了扩展程序已安装并启用。我也已经遇到过如果他们的权限设置错误会发生的那种警告消息,所以我也可以排除这种情况。

然后我发现 extension_loaded() and get_extension_funcs()。他们的结果有点令人困惑:

print_r(extension_loaded('http')); // true
print_rt(get_extension_funcs('http')); // []

在进行健全性检查时,我 运行 这些函数针对我知道有效的不同扩展,并且我确实在函数数组中得到了一些结果。如您所见,"http_build_str" 和 "http_build_url" 并不像我预期的那样属于 get_extension_funcs() 的输出。有人可以帮忙吗?

以防万一,我将其设置在 Docker 容器中,我 认为 其配置的相关部分如下:

RUN apt-get update && apt-get install --no-install-recommends -y \
    git-core \
    build-essential \
    openssl \
    libssl-dev \
    libcurl4-openssl-dev

RUN docker-php-ext-install pdo_mysql mbstring exif zip pcntl ftp
RUN docker-php-ext-configure gd --with-gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/
RUN docker-php-ext-install gd
RUN pecl install propro raphf \
    && docker-php-ext-enable propro raphf \
    && rm -rf /tmp/pear
RUN pecl install pecl_http xdebug \
    && docker-php-ext-enable http xdebug \
    && rm -rf /tmp/pear

似乎 Php Manuel 在这方面有点过时了。 不知道我是怎么错过的,但这个问题与 .

重复

回复这个的评论里的link已经死了,官方文档好像动了。 https://mdref.m6w6.name/http/QueryString

似乎所有的功能都还在,只是一些 类 的形式,而不是功能。

$params = ['test1'=>'val1','test2'=>'val2'];
$queryHandler = new QueryString($params);
$queryString = (string)$queryHandler;
print_r($queryString); // test1=val1&test2=val2