linkuha/uri

Uri validator and fixer

1.0beta 2019-11-20 06:01 UTC

This package is auto-updated.

Last update: 2024-04-22 15:49:30 UTC


README

parse_url($url) function and filter_var($url, FILTER_VALIDATE_URL) are weak for parsing and validating purposes.

Install: composer require linkuha/uri:dev-master

Usage example:

$myParser = (new UriParser)
    ->allowLocalDomain()
    ->allowLocalIp()
    ->allowWithoutScheme()
    ->allowPunycode(true);

$myValidator = new HttpValidator($myParser);
    
$validStatus = $myValidator->validate($url);
$parsedParts = $myValidator->getLastParts();

if (! $myValidator->isSecure($url)) {
    $validStatus = false;
}

$fix = $myValidator->suggestFix($parsedParts);

You can use UriParser separately or extend AbstractValidator with builder design pattern to custom own.

UriHelper contains URI manipulating static things (not all are fullness tested).

You can use any another libraries. For ex.: zendframework/zend-uri, symfony/validator, league/uri-parser, guzzlehttp/guzzle. For URI normalizing purpose the Guzzle is win by my opinion (tests).

For parsing/validating purposes no one of these are not fullness correctly validate all my test valid/invalid URLs set (will attach later).