PHP - Como hago para hacer funcionar esto?

 
Vista:

Como hago para hacer funcionar esto?

Publicado por duhast (1 intervención) el 28/02/2006 00:30:04
Bueno, el problema es que necesito que este codigo venia dentro de otro codigo php, yo lo saqué y quiero usarlo por si solo, ¿que debo cambiar para k al ejecutarlo me dé un resultado en la pantalla? ¿Donde debo agregarle un print?
el resultado debe ser de 6 en total, combinando digitos y letras
salu2

/////////////
function gen_rand_string($hash)
{
$chars = array( 'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0');

$max_chars = count($chars) - 1;
srand( (double) microtime()*1000000);

$rand_str = '';
for($i = 0; $i < 8; $i++)
{
$rand_str = ( $i == 0 ) ? $chars[rand(0, $max_chars)] : $rand_str . $chars[rand(0, $max_chars)];
}

return ( $hash ) ? md5($rand_str) : $rand_str;
}
/////////////////
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como hago para hacer funcionar esto?

Publicado por xxx (39 intervenciones) el 28/02/2006 06:09:20
hola. mira. en 7 lineas de codigo puedes hacer lo mismo y mejor. haciendo verificacion de errores, y trabajando bajo error_reporting E_ALL. que mas se puede pedir.
lo he creado en unos pocos minutos para que alguien pueda aprender de este codigo.
Hay una diferencia importante en las dos funciones.
quien quiera mejorarlo. esta mas que bienvenido.

xxx

<?php
//Bajo Licencia BSD
//Autor: xxx < xxx[at]xxx.xom >

error_reporting(E_ALL);
function get_rand_string($size=6) {
if ( !is_int($size) || $size <= 0 ) return trigger_error("\$size debe ser un entero mayor que 0", E_USER_ERROR);
$alphabet = array_merge(range(48,57), range(65,90), range(97,122));
$max_rand = count($alphabet)-1;
$result = '';
for ($i=0; $i < $size; $i++)
$result .= chr($alphabet[rand(0, $max_rand)]);
return $result;
}
function get_rand_string2($size=6) {
$alphabet = array_merge(range(48,57), range(65,90), range(97,122));
if ( !is_int($size) || $size <= 0 || $size > count($alphabet) ) return trigger_error("\$size debe ser un entero mayor que 0 y menor o igual a ".count($alphabet).".", E_USER_ERROR);
shuffle($alphabet);
$result = '';
for($i=0; $i < $size; $i++)
$result .= chr($alphabet[$i]);
return $result;
}

echo get_rand_string(6) . " / ". get_rand_string2(6);
//echo get_rand_string(100) . " / ". get_rand_string2(100);
//echo get_rand_string(0) . " / ". get_rand_string2(0);
exit;
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No soy un genio?

Publicado por xxx (39 intervenciones) el 28/02/2006 06:18:08
wow..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como hago para hacer funcionar esto?

Publicado por duhast (1 intervención) el 28/02/2006 06:47:38
Gracias, lo probaré, mucha gracias por tu tiempo :D, mira si me pudieras hacer una ultima aclaracion, en este codigo $hash puede ser true o false, si fuera true que parte del codigo se ejecutaria?? y si fuera false??
Pk cuando es "gen_rand_string(true)" me da como resultado una palabra de 6 digitos y letras minusculas al azar, en cambio, cuando es "gen_rand_string(false)"
me da una palabera de 8 letras mayusculas y minusculas y numeros al azar.
Muchas grx, Salu2!

function gen_rand_string($hash)
{
$chars = array( 'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0');

$max_chars = count($chars) - 1;
srand( (double) microtime()*1000000);

$rand_str = '';
for($i = 0; $i < 8; $i++)
{
$rand_str = ( $i == 0 ) ? $chars[rand(0, $max_chars)] : $rand_str . $chars[rand(0, $max_chars)];
}

return ( $hash ) ? md5($rand_str) : $rand_str;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como hago para hacer funcionar esto?

Publicado por maxter (205 intervenciones) el 28/02/2006 12:20:08
Si lo que quieres es generar 6 caracteres creo que lo más fácil es hacer esto:

<?php
$letras = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789";
$texto = '';
//generamos los 6 caracteres de forma aleatoria
for($i=0;$i<6;$i++){
$texto.=$letras[rand(0,strlen($letras)-1)];
}

echo 'texto generado: '.$texto;

?>

Espero que te sirva.

Saludos Yoandy --maxter
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como hago para hacer funcionar esto?

Publicado por duhast (1 intervención) el 28/02/2006 17:40:43
grx por sus respuestas, peero lo k kiero comprender como funciona el codigo k ya he puesto , de todas fromas grx por su ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar