PHPackages                             crwlr/url - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. crwlr/url

ActiveLibrary[HTTP &amp; Networking](/categories/http)

crwlr/url
=========

Swiss Army knife for URLs.

v2.2.0(5mo ago)10985.9k—10%5[1 issues](https://github.com/crwlrsoft/url/issues)3MITPHPPHP ^8.0

Since Apr 15Pushed 5mo ago1 watchersCompare

[ Source](https://github.com/crwlrsoft/url)[ Packagist](https://packagist.org/packages/crwlr/url)[ Docs](https://www.crwlr.software/packages/url)[ RSS](/packages/crwlr-url/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (10)Dependencies (6)Versions (26)Used By (3)

[![crwlr.software logo](https://github.com/crwlrsoft/graphics/raw/eee6cf48ee491b538d11b9acd7ee71fbcdbe3a09/crwlr-logo.png)](https://www.crwlr.software)

A Swiss Army knife for URLs
===========================

[](#a-swiss-army-knife-for-urls)

This package is for you when PHP's parse\_url() is not enough.

**Key Features:**

- **Parse a URL** and access or modify all its **components** separately.
- Resolve any **relative reference** you may find in an HTML document **to an absolute URL**, based on the document's URL.
- Get not only the full **host** of a URL, but also the **registrable domain**, the **domain suffix** and the **subdomain** parts of the host separately (Thanks to the [Mozilla Public Suffix List](https://publicsuffix.org/)).
- An advanced API to access and manipulate the **URL query** component.
- **Compare URLs** or components of URLs (e.g. checking if different URLs point to the same host or domain)
- Thanks to [symfony/polyfill-intl-idn](https://github.com/symfony/polyfill-intl-idn)it's also no problem to parse **internationalized domain names (IDN)**.
- Includes an adapter class which implements the [PSR-7 UriInterface](https://github.com/php-fig/http-message/blob/master/src/UriInterface.php).

Documentation
-------------

[](#documentation)

You can find the documentation at [crwlr.software](https://www.crwlr.software/packages/url/getting-started).

Contributing
------------

[](#contributing)

If you consider contributing something to this package, read the [contribution guide (CONTRIBUTING.md)](CONTRIBUTING.md).

###  Health Score

58

—

FairBetter than 98% of packages

Maintenance69

Regular maintenance activity

Popularity47

Moderate usage in the ecosystem

Community21

Small or concentrated contributor base

Maturity78

Established project with proven stability

 Bus Factor1

Top contributor holds 84.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~117 days

Recently: every ~202 days

Total

25

Last Release

178d ago

Major Versions

v0.1.2 → v1.0.0-beta2018-10-24

v0.1.x-dev → v1.0.02020-05-11

v1.2.0 → v2.0.02022-09-14

PHP version history (4 changes)v0.1.0PHP ~7.0

v1.0.0PHP ~7.2

v1.0.1PHP ^7.2|^8.0

v2.0.0PHP ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/3074cef6e2926ede6d4c9c39a0cf29e2e86e6927255a17c103114d0a5957e1a7?d=identicon)[crwlr](/maintainers/crwlr)

---

Top Contributors

[![otsch](https://avatars.githubusercontent.com/u/4062813?v=4)](https://github.com/otsch "otsch (141 commits)")[![nuernbergerA](https://avatars.githubusercontent.com/u/13331388?v=4)](https://github.com/nuernbergerA "nuernbergerA (9 commits)")[![szepeviktor](https://avatars.githubusercontent.com/u/952007?v=4)](https://github.com/szepeviktor "szepeviktor (8 commits)")[![ravage84](https://avatars.githubusercontent.com/u/625761?v=4)](https://github.com/ravage84 "ravage84 (7 commits)")[![enricodias](https://avatars.githubusercontent.com/u/32619307?v=4)](https://github.com/enricodias "enricodias (2 commits)")

---

Tags

composer-packagehacktoberfestidnparseurlphppsr-7punycodeuriuri-parserurlurl-parserurl-parsingurlspsr-7urlurirfc3986rfc3987parsercomponentsidnparseparsingurlscrwlrUriInterface

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/crwlr-url/health.svg)

```
[![Health](https://phpackages.com/badges/crwlr-url/health.svg)](https://phpackages.com/packages/crwlr-url)
```

###  Alternatives

[guzzlehttp/psr7

PSR-7 message implementation that also provides common utility methods

8.0k1.1B4.0k](/packages/guzzlehttp-psr7)[symfony/symfony

The Symfony PHP framework

31.4k87.2M2.2k](/packages/symfony-symfony)[league/uri-interfaces

Common tools for parsing and resolving RFC3987/RFC3986 URI

539238.7M44](/packages/league-uri-interfaces)[league/uri

URI manipulation library

1.1k240.0M391](/packages/league-uri)[riimu/kit-urlparser

RFC 3986 compliant url parsing library with PSR-7 Uri component

33566.8k2](/packages/riimu-kit-urlparser)[mimmi20/browser-detector

Library to detect Browsers and Devices

48157.5k5](/packages/mimmi20-browser-detector)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
