<?php

// array_map on array or scalar
function map($function, $var) {
    return is_array($var) ? array_map($function,$var) : $function($var);
}

// stripslashes on array or scalar
function strip($var) { 
    return map('stripslashes', $var); 
}

// htmlspecialchars on array or scalar
function html_escape($var) { 
    return map('htmlspecialchars', $var); 
}

// mysql escape on array or scalar
function mysql_escape($vars) { 
    if(phpversion() >= '4.3.0') {
        return map('mysql_real_escape_string', $vars);
    } else {
        return map('mysql_escape_string', $vars);
    }
}

// build safe sql query
function sqlprintf() {
    $args = func_get_args();
    if (count($args) < 2) {
        trigger_error("sql_escape need two or more arguments\n", E_USER_ERROR);
        return false;
    }
    $sql = array_shift($args);
    $args = mysql_escape($args);
    array_unshift($args, $sql);
    return call_user_func_array('sprintf', $args);
}

// dump any value
function dump($in) {
    echo "<pre>\n", (is_array($in)) ? print_r($in) : $in, "\n</pre>";
}

// retrieve $_GET values, safely
function get($thing) {
    if (isset($_GET[$thing])) {
        if (get_magic_quotes_gpc()) {
            return strip($_GET[$thing]);
        } else {
            return $_GET[$thing];
        }
    }
    return '';
}

// retrieve $_POST values, safely
function post($thing) {
    if (isset($_POST[$thing])) {
        if (get_magic_quotes_gpc()) {
            return strip($_POST[$thing]);
        } else {
            return $_POST[$thing];
        }
    }
    return '';
}

// retrieve $_COOKIE values, safely
function cookie() {
    if (isset($_COOKIE[$thing])) {
        if (get_magic_quotes_gpc()) {
            return strip($_COOKIE[$thing]);
        } else {
            return $_COOKIE[$thing];
        }
    }
    return '';
}

?>
