Search code examples
phphttprequesthttpresponsecloud9-idepecl

Are PHP PECL extentions on Cloud9 working?


I wanted to test some basic http_request functions (ie: echo http_request(HTTP_METH_GET,"http://www.example.com");) but PECL extensions dont seem to be working in Cloud9's IDE. Which is strange because the code hints show http_request and http_response_code are both available making it seem as if PECL extentions are installed. Is there a trick that i'm missing? thanks


Solution

  • You need to install these packages first:

    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
    

    Then change your php.ini configuration (add lines with "extension" and change enable_dl from Off to On):

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

    Then stop and start project and PECL/HTTP should be working correct.

    I tried this code and works fine:

    $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();