Source code of /package/share/includes/gwi_functions.inc.php

Last modified: 2015-05-07 10:31:01

Download

<?php

#
#  generic Whois - Maintenance Framework Common Functions
#
#  (c) 2013-2015 Daniel Marschall, ViaThinkSoft [www.viathinksoft.de]
#
#  Distribution, usage etc. pp. regulated by the current version of GPL.
#
#
#  Version 2015-05-06
#

function getpatternfiles() {
    
$out = array();

    
# LEGACY FILES
    
$files glob('/etc/gwhois/pattern*');
    
$masterfile '/etc/gwhois/pattern';
    foreach (
$files as &$file) {
        if (
$file == $masterfile) continue;

        
# see /usr/bin/gwhois
        
if (preg_match('\.dpkg-'$file)) continue;
        if (
preg_match('\.orig$'$file)) continue;
        if (
preg_match('\.bak$',  $file)) continue;
        if (
preg_match('\.save$'$file)) continue;
        if (
preg_match('^\.',     $file)) continue;
        if (
preg_match('-erx',    $file)) continue;

        
$out[] = $file;
    }
    if (
file_exists($masterfile)) $out[] = $masterfile;

    
# NEW FILES
    
$files glob('/etc/gwhois/pattern.d/*');
    foreach (
$files as &$file) {
        
# see /usr/bin/gwhois
        
if (preg_match('\.dpkg-'$file)) continue;
        if (
preg_match('\.orig$'$file)) continue;
        if (
preg_match('\.bak$',  $file)) continue;
        if (
preg_match('\.save$'$file)) continue;
        if (
preg_match('^\.',     $file)) continue;

        
$out[] = $file;
    }

    return 
$out;
}

function 
get_united_pattern() {
    
$cont '';

    
$files getpatternfiles();
    foreach (
$files as &$file) {
        
$cont .= file_get_contents($file)."\n\n";
    }

    return 
$cont;
}

# TODO: cache time und cache dir auslagern in config
function cached_file($url$max_age /* 24*60*60 */ 86400) {
    
$cachefile '/var/cache/gwhois/maintenance/cache/' sha1($url) . '.cache';
    if (
file_age($cachefile) > $max_age) {
        
$cont file_get_contents($url);
        
file_put_contents($cachefile$cont);
    } else {
        
$cont file_get_contents($cachefile);
    }
    return 
$cont;
}