Skip to content
fetch an URL (file) resource result
PHP
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
src
test
LICENCE
README.md
autoload.php
composer.json
phpunit.xml

README.md

urlRsrc

fetch an URL (file) resource content

urlRsrc is a Curl wrapper and implements a (no-cache) http GET request.

Output is a URL resource result string.

Throws InvalidArgumentException/RuntimeException on error (also http code >= 400).

No cookie or return headers managent, works out-of-the-box

Usage
<?php
namespace Kigkonsult\Http;

include __DIR__ . '/vendor/autoload.php';

/**
 * @param string $url            the url (file) resource
 *                               for missning scheme 'http' is used
 * @param array  $urlArgs        opt, *( urlArgKey => value )
 *                               if not empty, appended to url
 * @param array  $curlOpts       opt, *( curlOptConstant => value )
 *                               overwrites default (below) key value if key exists
 *                               The keys should be valid curl_setopt() constants or their integer equivalents.
 * @param int    $sizeDownload   hold (byte-)size of downloaded resource
 * @param float  $time           hold operation exec time (in seconds)
 * @return string
 * @throws InvalidArgumentException
 * @throws RuntimeException
 */
$result = UrlRsrc::getContent( 'example.com' );
Curl options

Default Curl options are

* fail if HTTP return code >= 400
CURLOPT_FAILONERROR    => true,

* follow redirects
CURLOPT_FOLLOWLOCATION => true,

* use a NO-cached connection
CURLOPT_FRESH_CONNECT  => true,

* array of HTTP headers, default Accept everything
CURLOPT_HTTPHEADER     => [ 'Accept: */*' ],
* example : prefer html/xml...
*    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'

* get URL contents
CURLOPT_RETURNTRANSFER => true,

* max seconds to wait before connect timeout
CURLOPT_CONNECTTIMEOUT => 60,

* max seconds to wait before Curl execute timeout
CURLOPT_TIMEOUT        => 60,

* no check of common the names in the SSL peer certificate
CURLOPT_SSL_VERIFYHOST => 0,

Note

  • CURLOPT_SSL_VERIFYPEER is (auto-)set depending on URL scheme; https gives true else false
  • UrlRsrc is indended to work without other added Curl options but
    some URLs may require some

Opt certificate directives :

How to (opt) implement basic authentication :

  • CURLOPT_HTTPAUTH => CURLAUTH_BASIC
  • CURLOPT_USERPWD => sprintf( '%s:%s', $userName, $password )

CurlOpts argument array key value overwrites default (above) if key is set.

More info about Curl options at php.net.

Installation

Composer, from the Command Line:

composer require kigkonsult/urlrsrc:dev-master

Composer, in your composer.json:

{
    "require": {
        "kigkonsult/urlrsrc": "dev-master"
    }
}

Composer, acquire access

use Kigkonsult\Http;
...
include 'vendor/autoload.php';

Otherwise , download and acquire..

use Kigkonsult\Http\UrlRsrc;
...
include 'pathToSource/UrlRsrc/autoload.php';
License

This project is licensed under the LGPLv3 License

You can’t perform that action at this time.