【问题标题】:Fatal error: Class 'HttpResponse' not found even after pecl_http loaded in php.ini致命错误:即使在 php.ini 中加载 pecl_http 后也找不到类“HttpResponse”
【发布时间】:2014-03-05 23:36:08
【问题描述】:

我已经安装并加载了 PECL http 扩展。

我在 php.ini 中添加了这些行:

extension=raphf.so
extension=propro.so
extension=http.so

我看到在

的输出中添加了以下内容
phpinfo()

启用 HTTP 支持,扩展版本 2.0.4

libz 1.2.5 1.2.5

libcurl 7.24.0 7.24.0

libevent 禁用 禁用

但是当我尝试使用类 HttpResponse 时,我得到了错误:

致命错误:在第 21 行的 RequestHandler.php 中找不到类“HttpResponse”

任何人都可以指导我错过了什么。

【问题讨论】:

  • 也有可能包含类 HttpResponse 的文件未包含在您正在使用的文件中。您也可以发布您的代码吗?
  • 你说得对,我没有在我的代码中明确包含该文件。但是后来我读到,对于 php,不需要像 java 这样包含代码,因为 php 在运行时会这样做?
  • PHP 不会自动执行此操作。如果您使用的是框架,它可能有一个自动加载器来执行此操作。
  • 那我如何让 php 在我的代码中包含 HttpResponse 类?
  • 你能把你的代码贴在这里吗?

标签: php pecl


【解决方案1】:

我想通了。耶!!

我正在安装 pecl_http 第 2 版并测试第 1 版的方法。第 2 版的 API 与第 1 版完全不同。谁会猜到 :)

【讨论】:

    【解决方案2】:

    如果使用不需要 PECL 扩展的代码呢?

    例如,这是我用来从专门设计的 aspx 文件中检索结果的东西:

    function getLoginToken($dashboardUrl, $dashboardUsername, $dashboardPassword)
    {
        $url = "{$dashboardUrl}GetLoginToken.aspx";
        $data = array('dashboardUsername' => $dashboardUsername,
                'dashboardPassword' => $dashboardPassword);
        $options = array(
                'http' => array(
                    'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
                    'method'  => 'POST',
                    'content' => http_build_query($data),
                ),
                );
    
        $context  = stream_context_create($options);
        $result = file_get_contents($url, false, $context);
        return $result;
    }
    

    【讨论】:

    • 我想走 PECL 路线的唯一原因(即使它的背后真的很痛苦)是因为我一直在读到它提供了更快的处理,因为它是用 C 编写的。什么是我在 php 中用于 http 请求和响应处理的非 PECL 选项
    猜你喜欢
    • 2021-08-14
    • 1970-01-01
    • 2020-02-12
    • 2015-02-10
    • 2020-04-14
    • 1970-01-01
    • 2015-07-20
    • 2014-10-03
    • 1970-01-01
    相关资源
    最近更新 更多