http.so已加载,但http_get未定义

som*_*rio 5 php lamp http

我在我的linux发行版上安装了LAMP:

///

PHP 5.4.9-4ubuntu2.4(cli)(建立日期:2013年12月12日04:29:20)版权所有(c)1997-2012 PHP Group Zend Engine v2.4.0,版权所有(c)1998-2012 Zend Technologies with Xdebug版权所有(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;
Run Code Online (Sandbox Code Playgroud)

我得到了以下结果:

///

boolean true

boolean true

boolean true

**boolean false**
Run Code Online (Sandbox Code Playgroud)

我不确定为什么extension_loaded("http")返回true但是function_exists("http_get")返回false,所以我不能使用函数http_get而不在Apache日志文件中获取以下内容

"[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

used Library Compiled Linked libz 1.2.7 1.2.7 libcurl 7.29.0 7.29.0 libevent disabled disabled

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

///

谢谢

小智 8

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

您可以使用1.x分支并以这种方式使用旧函数:

pecl uninstal pecl_http
pecl install pecl_http-1.7.6
Run Code Online (Sandbox Code Playgroud)

然后你可以使用http_get

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