<?
  class stringAleatoria {
  // cria a classe que retornar� um conjunto aleat�rio de strings

    var $arr = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9');
    // neste array dever�o ficar todas as vari�veis poss�veis
    // neste exemplo s� possui strings alfanum�rias (a-z e 0-9)
    // voc� tamb�m poder� colocar caracteres especiais ( ! @ # $ % & * )
    //
    // para acess�-la dentro da classe: "$this->arr"
    var $ret;
    // vari�vel de retorno da string desejada
    var $tmp;
    // vari�vel que guardar� � cada volta do la�o o caractere em quest�o

    function criaMinuscula($tam) {
    // fun��o que retorna a string min�scula (a-z)
      for($i=1;$i<=$tam;$i++){
      // este la�o percorre de 1 at� o n�mero desejado de caracteres
        $tmp = $this->arr[rand(0,count($this->arr)-1)];
        // cria uma vari�vel tempor�ria com o caractere de retorno
        if(is_string($tmp)){
        // se for uma string (a-z)
          $ret .= strtolower($tmp);
          // retorna as strings em min�sculo
        } else {
          // se n�o for string, adiciona ela � vari�vel final
          $ret = $ret.$tmp;
        }
      }

      return $ret;
      // retorna a var�avel que cont�m o conjunto de caracteres min�sculos de tamanho $tam
    }

    function criaMaiuscula($tam) {
    // fun��o que retorna a string mai�scula (A-Z)
      for($i=1;$i<=$tam;$i++){
      // este la�o percorre de 1 at� o n�mero desejado de caracteres
        $tmp = $this->arr[rand(0,count($this->arr)-1)];
        // cria uma vari�vel tempor�ria com o caractere de retorno
        if(is_string($tmp)){
        // se for uma string (a-z)
          $ret .= strtoupper($tmp);
          // retorna as strings em mai�sculo
        } else {
          // se n�o for string, adiciona ela � vari�vel final
          $ret = $ret.$tmp;
        }
      }

      return $ret;
      // retorna a var�avel que cont�m o conjunto de caracteres mai�sculos de tamanho $tam
    }

    function criaAleatoria($tam) {
    // fun��o que retorna a string aleat�ria (a-z e A-Z)
      for($i=1;$i<=$tam;$i++){
      // este la�o percorre de 1 at� o n�mero desejado de caracteres
        $tmp = $this->arr[rand(0,count($this->arr)-1)];
        // cria uma vari�vel tempor�ria com o caractere de retorno
        if(is_string($tmp)){
        // se for uma string (a-z)
          $x = rand(0,1);
          // variav�l aleat�ria 0 ou 1
          if($x == 0){
          // se a vari�vel for 0 o caractere ser� min�sculo
            $ret .= strtolower($tmp);
            // retorna as strings em min�sculo
          } else {
          // se a vari�vel for diferente de 0 o caractere ser� mai�sculo
            $ret .= strtoupper($tmp);
            // retorna as strings em mai�sculo
          }
        } else {
        // se n�o for string, adiciona ela � vari�vel final
          $ret = $ret.$tmp;
        }
      }

    return $ret;
    // retorna a var�avel que cont�m o conjunto de caracteres aleat�rios de tamanho $tam
    }
  }

  $var = new stringAleatoria();
  // instanciando a classe stringAleatoria

  $min = $var->criaMinuscula(20);
  // retorno da string min�scula de 20 caracteres

  $mai = $var->criaMaiuscula(20);
  // retorno da string mai�scula de 20 caracteres

  $ale = $var->criaAleatoria(20);
  // retorno da string aleat�ria de 20 caracteres

  echo '<pre> � Min�scula: '.$min.'<br> � Mai�scula: '.$mai.'<br> � Aleat�ria: '.$ale.'</pre>';
  // imprime os resultados
?>