php-mod/curl
cURL class for PHP
Maintainers
Requires
- php: ^5.6 | ^7.0 | ^8.0
- ext-curl: *
Requires (Dev)
- yoast/phpunit-polyfills: ^0.2.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
MIT c4f8799c471e43b7c782c77d5c6e178d0465e210
- php-curl-class
- Hassan Amouhzi <hassan.woop@anezi.net>
- user52
This package is auto-updated.
Last update: 2026-05-20 15:56:10 UTC
README
This library provides an object-oriented and dependency free wrapper of the PHP cURL extension.
👁 Maintainability
👁 Test Coverage
👁 Total Downloads
👁 Tests
If you have questions or problems with installation or usage create an Issue.
Installation
In order to install this library via composer run the following command in the console:
composer require curl/curl
Usage examples
A few example for using CURL with get:
$curl = (new Curl\Curl())->get('http://www.example.com/'); if ($curl->isSuccess()) { // do something with response var_dump($curl->response); } // ensure to close the curl connection $curl->close();
Or with params, values will be encoded with PHP_QUERY_RFC1738:
$curl = (new Curl\Curl())->get('http://www.example.com/search', [ 'q' => 'keyword', ]);
An example using post
$curl = new Curl\Curl(); $curl->post('http://www.example.com/login/', [ 'username' => 'myusername', 'password' => 'mypassword', ]);
An exampling using basic authentication, remove default user agent and working with error handling
$curl = new Curl\Curl(); $curl->setBasicAuthentication('username', 'password'); $curl->setUserAgent(''); $curl->setHeader('X-Requested-With', 'XMLHttpRequest'); $curl->setCookie('key', 'value'); $curl->get('http://www.example.com/'); if ($curl->error) { echo $curl->error_code; } else { echo $curl->response; } var_dump($curl->request_headers); var_dump($curl->response_headers);
Example access to curl object:
curl_set_opt($curl->curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1'); curl_close($curl->curl);
Example of downloading a file or any other content
$curl = new Curl\Curl(); // open the file where the request response should be written $file_handle = fopen($target_file, 'w+'); // pass it to the curl resource $curl->setOpt(CURLOPT_FILE, $file_handle); // do any type of request $curl->get('https://github.com'); // disable writing to file $curl->setOpt(CURLOPT_FILE, null); // close the file for writing fclose($file_handle);
Testing
In order to test the library:
- Create a fork
- Clone the fork to your machine
- Install the depencies
composer install - Build and start the docker image (in
tests/server)docker build . -t curlserverstartdocker run -p 1234:80 curlserver - Run the unit tests
./vendor/bin/phpunit tests
