PHPackages                             zeichen32/website-info - 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. [DevOps &amp; Deployment](/categories/devops)
4. /
5. zeichen32/website-info

ActiveLibrary[DevOps &amp; Deployment](/categories/devops)

zeichen32/website-info
======================

PHP library to retrieve server info from any webpage like installed cms, webserver, etc

v1.0.2(11y ago)1211MITPHPPHP &gt;=5.4.0

Since Jan 22Pushed 11y ago1 watchersCompare

[ Source](https://github.com/Zeichen32/WebsiteInfo)[ Packagist](https://packagist.org/packages/zeichen32/website-info)[ RSS](/packages/zeichen32-website-info/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (12)Versions (4)Used By (0)

Website Info
============

[](#website-info)

[![Build Status](https://camo.githubusercontent.com/719a2537701fb88eb1b962577c81baa833d27cd1cab9d94e16c8a262a2829958/68747470733a2f2f7472617669732d63692e6f72672f5a65696368656e33322f57656273697465496e666f2e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/Zeichen32/WebsiteInfo)

PHP library to retrieve server information like installed cms, webserver, dns lookup, etc... from any webpage

Requirements:

- PHP 5.4+
- Curl library installed
- [allow\_url\_fopen: On](http://php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen)

Install the library
-------------------

[](#install-the-library)

The preferred way to install this library is to use [Composer](http://getcomposer.org).

```
$ php composer.phar require zeichen32/website-info ~1.0
```

Usage
-----

[](#usage)

```
// Create a new WebsiteInfo instance with all default parser
$ws = \WebsiteInfo\Factory::createWithDefaultParser();

// OR
$ws = \WebsiteInfo\Factory::create(array(
            new \WebsiteInfo\Parser\Webserver\Apache(),
            new \WebsiteInfo\Parser\Webserver\Nginx(),
            new \WebsiteInfo\Parser\Webserver\IIS(),
            // ...
    ));

// Retrieve informations about wordpress.com
$result = $ws->get('http://wordpress.com');

print_r($result);
```

```
Array
(
    [headers] => Array
        (
            [request] => Array
                (
                    [Host] => Array
                        (
                            [0] => wordpress.org
                        )

                    [user-agent] => Array
                        (
                            [0] => WebsiteInfo
                        )

                )

            [response] => Array
                (
                    [Server] => Array
                        (
                            [0] => nginx
                        )

                    [Content-Type] => Array
                        (
                            [0] => text/html; charset=utf-8
                        )

                )

        )

    [webserver] => Array
        (
            [name] => Nginx
            [version] => unknown
            [score] => 1
            [raw] => nginx
        )

    [embed] => Array
        (
            [title] => WordPress Blog Tool, Publishing Platform, and CMS
            [description] =>
            [url] => https://wordpress.org/
            [type] => link
            [embed_code] =>
            [images] => Array
                (
                    [collection] => Array
                        (
                            [0] => http://wpdotorg.files.wordpress.com/2012/10/red-negative-w-crop.jpg
                        )

                    [base] => Array
                        (
                            [image] => http://wpdotorg.files.wordpress.com/2012/10/red-negative-w-crop.jpg
                            [width] => 264
                            [height] => 354
                            [aspect_ration] =>
                        )

                )

            [author] => Array
                (
                    [name] =>
                    [url] =>
                )

            [provider] => Array
                (
                    [name] => wordpress
                    [url] => https://wordpress.org
                    [icon] => https://s.w.org/favicon.ico?2
                    [icons] => Array
                        (
                            [0] => https://wordpress.org/favicon.ico
                            [1] => https://wordpress.org/favicon.png
                        )

                )

        )

    [lookup] => Array
        (
            [ip] => Array
                (
                    [0] => 66.155.40.249
                    [1] => 66.155.40.250
                )

            [hostname] => wordpress.org
            [dns] => Array
                (
                    ...
                )

        )

)
```

Available parser
----------------

[](#available-parser)

ParserClassDescriptionApache[WebsiteInfo\\Parser\\Webserver\\Apache](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/Webserver/Apache.php)Try to find information about apache webserverNginx[WebsiteInfo\\Parser\\Webserver\\Nginx](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/Webserver/Nginx.php)Try to find information about nginx webserverIIS[WebsiteInfo\\Parser\\Webserver\\IIS](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/Webserver/IIS.php)Try to find information about Microsoft IIS webserverDrupal[WebsiteInfo\\Parser\\CMS\\Drupal](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/CMS/Drupal.php)Try to find information about installed Drupal CMSJoomla[WebsiteInfo\\Parser\\CMS\\Joomla](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/CMS/Joomla.php)Try to find information about installed Joomla! CMSMagento[WebsiteInfo\\Parser\\CMS\\Magento](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/CMS/Magento.php)Try to find information about installed Magento systemphpBB[WebsiteInfo\\Parser\\CMS\\PHPBB](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/CMS/PHPBB.php)Try to find information about installed phpBB systemShopware[WebsiteInfo\\Parser\\CMS\\Shopware](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/CMS/Shopware.php)Try to find information about installed Shopware systemTypo3[WebsiteInfo\\Parser\\CMS\\Typo3](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/CMS/Typo3.php)Try to find information about installed Typo3 CMSvBulletin[WebsiteInfo\\Parser\\CMS\\VBulletin](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/CMS/VBulletin.php)Try to find information about installed vBulletin systemWordpress[WebsiteInfo\\Parser\\CMS\\Wordpress](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/CMS/Wordpress.php)Try to find information about installed Wordpress CMSGoogle[WebsiteInfo\\Parser\\Analytics\\Google](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/Analytics/Google.php)Try to find information about used google ads and analyticsPiwik[WebsiteInfo\\Parser\\Analytics\\Piwik](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/Analytics/Piwik.php)Try to find information about used piwik analyticsEmbed[WebsiteInfo\\Parser\\Embed\\Embed](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/Embed/Embed.php)Try to find embed informationLookup[WebsiteInfo\\Parser\\Lookup](https://github.com/Zeichen32/WebsiteInfo/blob/master/src/Parser/Lookup.php)Try to find lookup informations like dns, ip etc.Create your own parser
----------------------

[](#create-your-own-parser)

1. Create a new parser that do something with the response

```
namespace Acme\Parser;

use WebsiteInfo\Event\ParseResponseEvent;
use WebsiteInfo\Parser\AbstractParser;

class MyParser extends AbstractParser {

    public function onParseResponse(ParseResponseEvent $event)
    {
        // Get response object
        $response = $event->getResponse();

        // Do something with the response
        $something = $this->doSomething( (string) $response->getBody() );

        // Add a new section to the output container
        $event->getData()->addSection('my_new_section', array(
            'foo' => 'bar',
            'version' => '1.0',
            'score' => 1,
            'raw' => $something
        ));
    }
}
```

2. Use your parser

```
// Create a new WebsiteInfo instance
$ws = \WebsiteInfo\Factory::createWithDefaultParser();

// Register your parser
$ws->addParser(new \Acme\Parser\MyParser());

// Retrieve informations about wordpress.com
$result = $ws->get('http://wordpress.com');
```

Using the result container cache
--------------------------------

[](#using-the-result-container-cache)

1. Using the ArrayCache (Memory Cache)

```
// Create a new WebsiteInfo instance
$ws = \WebsiteInfo\Factory::createWithDefaultParser();

// Using the array cache
$ws->setCache(new \TwoDevs\Cache\ArrayCache());

// Retrieve informations about wordpress.com
$result = $ws->get('http://wordpress.com');
```

2. If doctrine cache is installed, it can be used to cache the result container using the doctrine cache adapter.

```
// Create a new WebsiteInfo instance
$ws = \WebsiteInfo\Factory::createWithDefaultParser();

// Create a new DoctrineCache instance
$doctrineCache = new \Doctrine\Common\Cache\FilesystemCache('var/cache');

// Create a new DoctrineCache adapter
$cacheAdapter = new \TwoDevs\Cache\DoctrineCache($doctrineCache);

// Using the cache
$ws->setCache($cacheAdapter);

// Retrieve informations about wordpress.com
$result = $ws->get('http://wordpress.com');
```

3. If zend cache is installed, it can be used to cache the result container using the zend cache adapter.

```
// Create a new WebsiteInfo instance
$ws = \WebsiteInfo\Factory::createWithDefaultParser();

// Create a new ZendStorage instance
$zendCache = new \Zend\Cache\Storage\Adapter\Memory();

// Create a new ZendCache adapter
$cacheAdapter = new \TwoDevs\Cache\ZendCache($zendCache);

// Using the cache
$ws->setCache($cacheAdapter);

// Retrieve informations about wordpress.com
$result = $ws->get('http://wordpress.com');
```

How to use a different HttpClient
---------------------------------

[](#how-to-use-a-different-httpclient)

This library use the [Saxulum HttpClientInterface](https://github.com/saxulum/saxulum-http-client-interface) which allows you to simple change the used HttpClient.

For example you want to use [Buzz](https://github.com/kriswallsmith/Buzz) as HttpClient:

1. Add the Buzz adapter to your composer.json:

```
$ php composer.phar require saxulum-http-client-adapter-buzz ~1.0
```

2. Create a new BuzzClient

```
    // Create a new Buzz Client
    $buzz = new \Buzz\Browser();

    // Create the client adapter
    $client = new \Saxulum\HttpClient\Buzz\HttpClient($guzzle);

    // Create a new WebsiteInfo instance with all default parser and custom client
    $ws = \WebsiteInfo\Factory::createWithDefaultParser($client);

    // Retrieve informations about wordpress.com
    $result = $ws->get('http://wordpress.com');

    print_r($result);

```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity60

Established project with proven stability

 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.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

4133d ago

### Community

Maintainers

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

---

Top Contributors

[![Zeichen32](https://avatars.githubusercontent.com/u/1432899?v=4)](https://github.com/Zeichen32 "Zeichen32 (2 commits)")

---

Tags

servercmslookupopengraphoembedtwitter cardswebsite info

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/zeichen32-website-info/health.svg)

```
[![Health](https://phpackages.com/badges/zeichen32-website-info/health.svg)](https://phpackages.com/packages/zeichen32-website-info)
```

###  Alternatives

[embed/embed

PHP library to retrieve page info using oembed, opengraph, etc

2.1k11.0M97](/packages/embed-embed)[silverstripe/framework

The SilverStripe framework

7213.5M2.5k](/packages/silverstripe-framework)[wrav/oembed

A simple plugin to extract media information from websites, like youtube videos, twitter statuses or blog articles.

36205.0k3](/packages/wrav-oembed)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

7310.3k29](/packages/open-dxp-opendxp)[mmoreram/translation-server

PHP translation server

233.7k2](/packages/mmoreram-translation-server)[benjam1/symfttpd

PHP webserver

151.7k](/packages/benjam1-symfttpd)

PHPackages © 2026

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