Funktions-Sammlung

/** Wenn post-Feld mit $feld index existiert, zurückliefern */
function check($feld) {   
    if(isset($_POST[$feld])) {
        return $_POST[$feld];
    } else {
        return "";
    }
   
}

function zerofill($wert, $laenge){
    while(strlen($wert) < $laenge){
        $wert = '0'.$wert;
    }
    return $wert;
}

function emptyfill($wert, $laenge){
    while(strlen($wert) < $laenge){
        $wert = $wert."&nbsp;";
    }
    return $wert;
}

/** als selected markieren, wenn args stimmen */
function select_check($selected, $id){

    if ($selected == $id){
        return "selected=selected";
    }
}

/** als checked markieren, wenn args stimmen */
function checked_check($selected, $id){
    if ($selected == $id){
        return "checked";
    }
}

/** als readonly markieren, wenn args stimmen */
function readonly_check($selected, $id){
    if ($selected == $id){
        return "readonly=\"readonly\"";
    }
}

/** checken ob feld übergeben wurde, wenn ja, user-wert zurückgeben */
function flex_check($wert1, $wert2, $returnOnMatch){
    if($wert1 == $wert2 && $wert1 != ""){
        return $returnOnMatch;
    }else{
        return "";
    }
}

function getfilename($file){
    $punkt = strrpos($file, '.')+1;
    if($punkt === false){
        $punkt= strlen($file);
    }
    return substr($file, 0, $punkt);
}

function getfiletype($file){
    $punkt = strrpos($file, '.')+1;
    if($punkt === false){
        $punkt=0;
    }
    return substr($file, $punkt);
}

// format geldbetraege
/** ersetze , durch . */
function money($wert, $menge=1) {
    $wert = trim(str_replace(',','.', $wert));

    if(!is_numeric($wert)){
        $wert = trim(str_replace("\u20ac", "", $wert));
        $wert = trim(str_replace("&euro;", "", $wert));
    }
    if(is_numeric($wert)){
        $wert *= $menge;
    }
    return $wert;

}

/** formatiere wert als geldbetrag */
function prettymoney($wert) {
    return prettymenge(money($wert))."\u20ac";
}

function betrag($preis, $menge) {
    return prettymoney(money($preis, $menge));
}

/** formatiere wert als menge mit 2 nachkommastellen */
function prettymenge($wert) {
    $wert = str_replace(',','.', $wert);
    if(!is_numeric($wert)){
        return str_replace('.',',', $wert);
    }
    $wert = round($wert, 2);
    if(strpos($wert, '.')===FALSE ){
            $wert = $wert.'.00';
    }
    if((strlen($wert)-strrpos($wert, '.'))==2){
            $wert = $wert.'0';
    }
    $wert = str_replace('.',',', $wert);
    return $wert;
}

/**formatiere deutsches datum in stamp*/
function getstamp($datum){
    if(is_numeric($datum)){
        return $datum;
    }

    $stuecke= explode(".", $datum);

    if(count($stuecke)==3){
        $jahr = $stuecke[2];
        $monat= $stuecke[1];
        $tag = $stuecke[0];

        return strtotime("$jahr-$monat-$tag");
    }else{
        #schon englisch?
        return strtotime($datum);
    }
}

/**formatiere deutsche uhrzeit in sekunden*/
function gettime($time){
    $stuecke= explode(":", $time);

    if(count($stuecke)==2){
        $ret = $stuecke[0]*60*60 + $stuecke[1]*60;
    }else{
        $ret = $time;
    }

    return $ret;
}

/**formatiere Datum auf deutsch */
function prettydatum($datum){
    if(empty($datum)){
        return "";
    }

    $stuecke= explode("-", $datum);

    if(count($stuecke)==3){
        $jahr = $stuecke[0];
        $monat= $stuecke[1];
        $tag = $stuecke[2];

        if("$tag.$monat.$jahr" == "00.00.0000") {
            return "-";
        }else{
            return "$tag.$monat.$jahr";
        }
    }elseif(strlen($datum)==10 and strpos($datum, ".") === false){
        return date("d.m.Y", $datum);
    }elseif(!empty($datum)){
        return $datum;
    }else{
        return "";
    }
}

function firstkw($jahr) {
    $erster = mktime(0,0,0,1,1,$jahr);
    $wtag = date('w', $erster);

    if($wtag<=4) {
        //donnerstag oder kleiner: auf montag zurueckrechnen
        $montag = mktime(0,0,0,1,1-($wtag-1),$jahr);
    } else {
        //auf montag vorrechnen
        $montag = mktime(0,0,0,1,1+(7-$wtag+1),$jahr);
    }
    #erster montag im jahr
    #echo date('d.m.Y', $montag);
    return $montag;
}

function mondaykw($kw, $jahr) {
    $firstmonday = firstkw($jahr);
    $mon_monat = date('m', $firstmonday);
    $mon_jahr = date('Y', $firstmonday);
    $mon_tage = date('d', $firstmonday);  #fuer montag als erster wochentag

    $tage = ($kw-1)*7;

    $mondaykw = mktime(0,0,0,$mon_monat, $mon_tage+$tage, $mon_jahr);

    return $mondaykw;
}

function getfirstdayofweek($day, $month, $year){
    $start = date("w", mktime(0,0,0,$month, 1, $year))-1;
    if($start<0) {
        $start = 7+$start;
    }
    return $start;
}

function getlastdayofweek($day, $month, $year){
    return getfirstdayofweek($day, $month, $year)+7;
}

function getprozent($wert){
   
    $wert = str_replace(",", ".", $wert);
   
    if(strpos($wert, "%") !== FALSE){
        //% abschneiden
        $prozent = (substr($wert, 0, strpos($wert, "%")));
    }else{
        #kein %, kein .
        $prozent = $wert;
    }
    return $prozent;
}

function getmwst($wert){
    return "1.".getprozent($wert);
}

function prettyprozent($wert){   
    return prettymenge($wert)."%";  
}

/** richtet Zahlen rechtszentriert aus */
function checknumber($wert){
    if(is_numeric(money($wert))){
        return "<div class=\"zahl\">$wert</div>";
    }else{
        return $wert;
    }
}

function killquotes($wert){
    $ret = $wert;
    if(strpos(getStrValAtPos($wert, 0), "\"") === 0){
        $ret = substr($wert, 1, (strlen($wert)-2));
    }
    return $ret;
}

/** convert all html entities to code */
function encodeText($string){
    return addslashes(htmlentities(trim($string), ENT_QUOTES, "ISO-8859-1"));
}

function decodeText($string){
    return html_entity_decode(stripslashes($string), ENT_QUOTES, "ISO-8859-1");
}

function getStrValAtPos($string, $pos, $count=1){
    return substr($string, $pos, $count);
}

function countChar($haystack, $needle){
    //wie substr_count
    $pos =strpos($haystack, $needle);
    if( $pos !== false and $haystack{$pos-1} !='\\'){
        return 1 + countChar(substr($haystack, $pos));
    }else{
        return 0;
    }
}

function debugme($wert){
    if(is_array($wert)){
        echo
        "<pre>
        <p class=\"warning\">";
            print_r($wert);
            echo
            "</p>
            </pre>\n";
    }else{

        echo "<pre>
        <p class=\"warning\">
        $wert
        </p>
        </pre>\n";
    }
}