<?php

/**
* @Description: Erstellt einen zufälligen String. Einstellbar ist die Länge min (Default: 6), max (Default:16) und der Wertebereich des Strings (Default: 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz./).
* @Author: Jörg Reinholz, fastix WebDesign & Consult, Kassel - http://www.fastix.org/
**/

function randomString (
    $iLengthMin  = 6,
    $iLengthMax  = 16,
    $sChars      = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz./'
) {

    if ( 0 == $iLengthMax or 0 == $iLengthMin) {
        throw new Exception ('randomString: Es ist sinnlos, einen zufälligen String mit keinem Zeichen zu erzeugen.', 500);
    }
    if ( 2 > strlen($sChars )) {
        throw new Exception ('randomString: Wertbereich des Zufallsstrings enthält kein oder nur ein Zeichen.', 500);
    }

    if ( $iLengthMin < $iLengthMax ) {
        $iLength = rand ($iLengthMin, $iLengthMax);
    } elseif ( $iLengthMin > $iLengthMax ) {
        $iLength = rand ( $iLengthMax, $iLengthMin );
    } else {
        $iLength = $iLengthMax;
    }

    $iCharsMaxItem = strlen ( $sChars )-1;

    $randomString = '';
    for ( $i=0; $i < $iLength; $i++ ) {
        $randomString .= $sChars[ rand ( 0 ,  $iCharsMaxItem ) ];
    }

    return $randomString;
}


/*
### Test:
echo ($s . "\n" );
for ( $i=0; $i<30; $i++ ) {
    $s = randomString();
    $l = strlen ( $s );
    echo ( $l . "\t" . $s . "\n" );
}
# randomString(0,1,'A'); soll Fehler liefern.
#*/
?>