我的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,所以我不能使用函数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
二手图书馆编译链接 libz 1.2.7 1.2.7 libcurl 7.29.0 7.29.0 解放残疾人士
指令本地价值主值 http.etag.mode crc32b crc32b
///
由于
答案 0 :(得分:8)
正如Michael Berkowski所说,2.x分支是全新的,它可以使用不同的API。
您可以使用1.x分支并以这种方式使用旧函数:
pecl uninstal pecl_http
pecl install pecl_http-1.7.6
然后你可以使用http_get
无论如何,如果这是一个全新的项目,建议使用最新的API。
答案 1 :(得分:0)
仅略微阐述Alex的答案,除非我错过了一些内容,否则Php Manuel并没有真正反映出此扩展的变化方式。而且您对问题的评论中的链接似乎不再起作用。我认为您现在想要得到相同行为的是http\Client::send()。