PHPackages                             chrisshennan/page-analyzer - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. chrisshennan/page-analyzer

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

chrisshennan/page-analyzer
==========================

A simple, extendable page analyzer written in PHP

01.4k1PHPCI failing

Since Feb 24Pushed 3y ago1 watchersCompare

[ Source](https://github.com/chrisshennan/page-analyzer)[ Packagist](https://packagist.org/packages/chrisshennan/page-analyzer)[ RSS](/packages/chrisshennan-page-analyzer/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (3)Used By (0)

Page Analyzer
=============

[](#page-analyzer)

A simple, extensible page analyzer written in PHP.

Analyzes HTML markup and extracts common attributes such as

- Meta Tags including OpenGraph tags, Twitter Cards etc
- JSON-LD
- Apple Icons / favicon
- Canonical references
- Response headers
- RSS / XML feeds (link alternative)

Easily extensible by adding your own custom analyzers.

Installation
------------

[](#installation)

```
composer require chrisshennan/page-analyzer dev-master

```

Basic Usage
-----------

[](#basic-usage)

Analyze a live page

Set the list of analyzers when creating the PageAnalyzer.

```
$loader = require __DIR__.'/vendor/autoload.php';

$url ='https://shoutabout.it';

$analyzerFactory = new \Cas\PageAnalyzer\Factory\AnalyzerFactory();
$analyzerFactory->addAnalyzerReference('\Cas\PageAnalyzer\Analyzer\MetaData');
$analyzerFactory->addAnalyzerReference('\Cas\PageAnalyzer\Analyzer\Logo');

$analyzerManager = $analyzerFactory->createManager();
$analysisCollection = $analyzerManager->analyze($url)->getAnalysis();

$data = [];

foreach ($analysisCollection as $analyzer => $analysis) {
    $data[$analyzer] = $analysis->getData();
}

...

```

Custom Analyzers
----------------

[](#custom-analyzers)

Create the new analyzer class

```
namespace App\Analyzer;

use Cas\PageAnalyzer\Analyzer\BaseAnalyzer;

class MyCustomAnalyzer extends BaseAnalyzer
{
    public function analyze(string $content) : array
    {
        ...
    }
}

```

Add the analyzers to the list of analyzers

```
$loader = require __DIR__.'/vendor/autoload.php';

$url ='https://shoutabout.it';

$analyzerFactory = new \Cas\PageAnalyzer\Factory\AnalyzerFactory();
$analyzerFactory->addAnalyzerReference('\Cas\PageAnalyzer\Analyzer\MetaData');
$analyzerFactory->addAnalyzerReference('\Cas\PageAnalyzer\Analyzer\Logo');
$analyzerFactory->addAnalyzerReference('\App\Analyzer\MyCustomAnalyzer');

$analyzerManager = $analyzerFactory->createManager();
$analysisCollection = $analyzerManager->analyze($url)->getAnalysis();

$data = [];

foreach ($analysisCollection as $analyzer => $analysis) {
    $data[$analyzer] = $analysis->getData();
}

...

```

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/ac2d4bd2595d760c9cfac28685500429bb4443d28cffd8ec8bf4eb4aa2d7b9c0?d=identicon)[chrisshennan](/maintainers/chrisshennan)

---

Top Contributors

[![chrisshennan](https://avatars.githubusercontent.com/u/1922601?v=4)](https://github.com/chrisshennan "chrisshennan (21 commits)")

### Embed Badge

![Health badge](/badges/chrisshennan-page-analyzer/health.svg)

```
[![Health](https://phpackages.com/badges/chrisshennan-page-analyzer/health.svg)](https://phpackages.com/packages/chrisshennan-page-analyzer)
```

###  Alternatives

[log1x/acf-composer

Create fields, blocks, option pages, and widgets using ACF Builder and Sage 10

493760.2k13](/packages/log1x-acf-composer)[markrogoyski/ipv4-subnet-calculator

Network calculator for subnet mask and other classless (CIDR) network information.

177813.7k6](/packages/markrogoyski-ipv4-subnet-calculator)[b13/menus

Easy and fast menus for TYPO3 Frontends

58534.7k1](/packages/b13-menus)[hfig/mapi

Pure PHP library for reading and manipulating Microsoft Outlook .msg messages (MAPI documents)

40420.9k2](/packages/hfig-mapi)

PHPackages © 2026

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