volt/modern_php_scanner

Scan URLs from an array and return an array of inaccessible URLs. An example component from Josh Lockhart's book "Modern PHP" (2015)

0.1.1 2016-03-20 18:28 UTC

This package is auto-updated.

Last update: 2024-03-29 02:50:28 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

It is just an educational test project. It is a slightly modified example from Josh Lockhart's book "Modern PHP" by O'Reilly (2015).

For original code see a related GitHub page. You may as well look througgh [a forked version] (https://github.com/frankperez87/scanner/blob/master/src/Url/Scanner.php) for some code modifications.

This component uses PSR-4 autoload and utilizes Oreilly\ModernPhp\ namespace.
For class identification use \Oreilly\ModernPhp\Url\Scanner class name.

Install

Via Composer

$ composer require volt/modern_php_scanner

Usage

    // an array of test links
    $a_urls = array(
        'http://www.pravda.com.ua',
        'http://www.xpravda.ua',
        'http://php.net/manual/ru/wrappers.php.php',
        'http://uberhumor.com/',
        'https://github.com/frankperez87/scanner/blob/master/src/Url/Scanner.php',
        'https://www.google.com.ua/maps/'
    );
    
    $o_scanner = new \Oreilly\ModernPhp\Url\Scanner($a_urls); // instantiate the component class
    
    $a_invalid_urls_arrays = $o_scanner->getInvalidUrls(); // get an array with resutls of scan 
    
    // print_r($a_invalid_urls_arrays);
    
    // == the end == 
    
    // the rest of the code below is compiling html markup for output in $c_html_url_result 
    // from array of arrays ($a_invalid_urls_arrays)
    
    $c_html_url_result = null;
    if (empty($a_invalid_urls_arrays)) {
        $c_html_url_result = "<h2>All provided URLs are valid</h2>";
    
    } else {
        $c_html_lis = null;
        
        foreach((array)$a_invalid_urls_arrays as $a_url_data){
            
            $c_url = array_key_exists('url', $a_url_data)? $a_url_data['url'] : 'N/A';
            $n_status_code = array_key_exists('status_code', $a_url_data)? 
                $a_url_data['status_code'] : 'N/A';
            
            $c_html_url = htmlspecialchars($c_url, ENT_QUOTES);
            $c_html_lis .= "<li><span>{$c_html_url}</span> Status message: <code>{$n_status_code}</code></li>";        
        }//endforeach
    
        $c_html_url_result = "<h2>The following URLs are invalid:</h2>"
            . "<ul>" . $c_html_lis . "</ul>";
    }//endif
    
    echo $c_html_url_result;

Change log

Don't bother looking at CHANGELOG for no additional information on changes is planned to be added.

Testing

 $ composer test

Contributing

Please see CONTRIBUTING and CONDUCT for details.

Security

Bare in mind, this is just a test project. If you discover any security related issues, please ignore them. You may as well use the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.