Skip to content
Snippets Groups Projects
Search.php 1.49 KiB
<?php
class UNL_Search
{
    function __construct()
    {
        
    }
    
    public static function removeRelativePaths($html, $base_url)
    {
        $needles = array('href="', 'src="', 'background="');
        $new_base_url = $base_url;
        $base_url_parts = parse_url($base_url);
        
        if (substr($base_url,-1) != '/') {
            if (isset($base_url_parts['path'])) {
                $path = pathinfo($base_url_parts['path']);
            } else {
                $path = pathinfo('/');
            }
            $new_base_url = substr($new_base_url, 0, strlen($new_base_url)-strlen($path['basename']));
        }
    
        foreach ($needles as $needle) {
            $new_txt = '';
            while ($pos = strpos($html, $needle)) {
                $pos += strlen($needle);
                if (substr($html,$pos,7) != 'http://'
                     && substr($html,$pos,8) != 'https://'
                     && substr($html,$pos,6) != 'ftp://'
                     && substr($html,$pos,9) != 'mailto://') {
                     if (substr($html,$pos,1) == '/') {
                         $new_base_url = $base_url_parts['scheme'].'://'.$base_url_parts['host'];
                     }
                     $new_txt .= substr($html,0,$pos).$new_base_url;
                } else {
                    $new_txt .= substr($html,0,$pos);
                }
                $html = substr($html,$pos);
            }
            $html = $new_txt.$html;
        }
        return $html;
    }
    
}
?>