【发布时间】:2014-01-18 10:58:37
【问题描述】:
我的 Linux 发行版上安装了 LAMP:
///
PHP 5.4.9-4ubuntu2.4 (cli)(构建时间:2013 年 12 月 12 日 04:29:20) 版权所有 (c) 1997-2012 PHP 集团 Zend Engine v2.4.0,版权所有 (c) 1998-2012 Zend Technologies 使用 Xdebug v2.2.1,版权所有 (c) 2002-2012,作者 Derick Rethans
///
为了使用 pecl_http php 扩展中的 http_get,我已明确安装它并将 http.so 扩展添加到 php.ini。
现在我处于以下情况。使用下面的简单 php 代码:
echo var_dump(extension_loaded("http"));
echo var_dump(extension_loaded("raphf"));
echo var_dump(extension_loaded("propro"));
echo var_dump(function_exists("http_get"));
$response = http_get("www.google.com");
echo $response;
我得到了以下结果:
///
boolean true
boolean true
boolean true
**boolean false**
我不知道为什么 extension_loaded("http") 返回 true 但 function_exists("http_get") 返回 false,所以如果没有在 Apache 日志文件中获取以下内容,我就无法使用函数 http_get
“[2013 年 12 月 31 日星期二 12:32:26] [错误] [客户端 127.0.0.1] PHP 致命错误:在第 32 行的 /home/user/main.php 中调用未定义函数 http_get()”
您能帮我解决这个问题吗?
(使用控制台交互模式php -a同样的问题)
phpinfo() 显示:
///
http
启用 HTTP 支持 扩展版本 2.0.3
使用的库编译链接 库 1.2.7 1.2.7 库卷曲 7.29.0 7.29.0 libevent 禁用 禁用
指令本地值主值 http.etag.mode crc32b crc32b
///
谢谢
【问题讨论】:
-
看来扩展安装正确。做一个 查看已安装扩展的更详细的输出。
-
嗨,Alex,添加了与 html 扩展相关的 phpinfo() 的输出
-
啊,我刚刚发现了一些东西——显然所有旧的
http_*()函数只存在于 v1 而不是 v2。此处的其中一个 cmets 中提到了这一点:php.net/manual/en/http.install.phpPECL HTTP 2 文档:devel-m6w6.rhcloud.com/mdref/http -
@MichaelBerkowski 非常感谢,我认为这回答了我的问题(花费了很多小时之后)。
-
不幸的是,php.net/manual/en/book.http.php 的文档根本不清楚。