Php http.so已加载,但http\u未定义

Php http.so已加载,但http\u未定义,php,http,lamp,Php,Http,Lamp,我在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,作者:德里克·雷特汉斯 /// 为了使用http_-get-from-pecl_-http-php扩展,我显式安装了它,并将http.s

我在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,作者:德里克·雷特汉斯

///

为了使用http_-get-from-pecl_-http-php扩展,我显式安装了它,并将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;
我得到了以下结果:

///

我不确定为什么扩展名\u-loaded(“http”)返回true,但函数\u-exists(“http\u-get”)返回false,因此如果不在Apache日志文件中获取以下内容,我就无法使用函数http\u-get

“[Tue Dec 31 12:32:26 2013][error][client 127.0.0.1]PHP致命错误:在第32行调用/home/user/main.PHP中未定义的函数http_get()”

你能帮我解决这个问题吗

(使用控制台交互模式php-a时出现相同问题)

phpinfo()显示:

///

http

启用HTTP支持 扩展版本2.0.3

已使用的库编译链接 libz 1.2.7 1.2.7 libcurl 7.29.0 7.29.0 libevent已禁用

指令本地值主值 http.etag.mode crc32b crc32b

///


谢谢

正如Michael Berkowski所说,2.x分支是全新的,它使用不同的API

您可以使用1.x分支,并通过以下方式使用旧函数:

pecl uninstal pecl_http
pecl install pecl_http-1.7.6
然后您可以使用http\u get


无论如何,如果这是一个全新的项目,建议使用最新的API。

只是对Alex的答案稍加阐述,除非我遗漏了什么,否则Php手册并没有真正反映出这个扩展是如何改变的。你问题评论中的链接似乎不再有效了。我想您现在想要的是获得相同的行为。

看起来扩展安装正确。大家好,Alex,添加了与html扩展相关的phpinfo()输出。我刚刚发现了一些东西——显然所有旧的
http.*()
函数只出现在v1中,而不出现在v2中。这里的一条评论中提到了这一点:PECL HTTP 2 docs:@MichaelBerkowski非常感谢,我想这回答了我的问题(花了很多时间)。很遗憾,这里的文档一点也不清楚。
pecl uninstal pecl_http
pecl install pecl_http-1.7.6