php-mod/curl

This package is abandoned and no longer maintained. The author suggests using the curl/curl package instead.

cURL class for PHP

Maintainers

👁 amouhzi

Package info

github.com/php-mod/curl

pkg:composer/php-mod/curl

Statistics

Installs: 2 164

Dependents: 0

Suggesters: 0

Stars: 328

Open Issues: 5

2.5.0 2022-12-14 13:27 UTC

Requires

  • php: ^5.6 | ^7.0 | ^8.0
  • ext-curl: *

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT c4f8799c471e43b7c782c77d5c6e178d0465e210

curldot


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:

  1. Create a fork
  2. Clone the fork to your machine
  3. Install the depencies composer install
  4. Build and start the docker image (in tests/server) docker build . -t curlserver start docker run -p 1234:80 curlserver
  5. Run the unit tests ./vendor/bin/phpunit tests