PHP Cloud9 上的 PECL 扩展是否正常工作?

Are PHP PECL extentions on Cloud9 working?

我想测试一些基本的 http_request 功能(即:echo http_request(HTTP_METH_GET,"http://www.example.com");),但 PECL 扩展似乎在 Cloud9 的 IDE 中不起作用。这很奇怪,因为代码提示显示 http_request 和 http_response_code 都可用,看起来好像安装了 PECL 扩展。有没有我想念的把戏?谢谢

您需要先安装这些软件包:

sudo apt-get install php-http
sudo apt-get install php5-dev
sudo apt-get install libcurl3
sudo apt-get install libpcre3-dev
sudo apt-get install libcurl4-openssl-dev
sudo pecl install raphf 
sudo pecl install pecl_http-1.7.6

然后更改您的 php.ini 配置(添加带有 "extension" 的行并将 enable_dl 从关闭更改为打开):

enable_dl = On
extension = raphf.so
extension = propro.so
extension = hash.so
extension = iconv.so
extension = json.so
extension = http.so

然后停止并启动项目,PECL/HTTP 应该可以正常工作。

我试过这段代码并且工作正常:

$r = new HttpRequest('http://rss.cnn.com/rss/edition.rss', HttpRequest::METH_GET);
$r->addQueryData(array('category' => 3));
$r->send();
if ($r->getResponseCode() == 200)
    print $r->getResponseBody();