Archive for noviembre 2011

PHP – Generar passwords Ramdom

Esta es la funcion que utilizo generalmente para realizar contraseñas aleatorias:

function _createRandomPassword($length = null)
 {
$chars = «abdefghjmnpqrstuvwxyz23456789»;
srand((double)microtime()*1000000);
$i = 0;
$pass = » ;
$length  = ($length!=null) ? intval($length) :  7;
while ($i <= $length )
{

$num = rand() % 29;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;

     }
return $pass;

    }

PHP-Programación : Sumar Dígitos de un Número

Lei esta pregunta que realizo el usuario:  Jonathan Terrada en el grupo de programación «PHP-Programacion» php—programacion@googlegroups.com el cual recomiendo  auqnue yo no poseto mucho alli me entretiene las preguntas que hacen algunas personas y hoy me he animado a contestar una de ellas el problema es el siguiente: «Alguien sabe si existe una función, que sume todos los dígitos de un número y llegue como resultado a un solo dígito ?      * Es decir, por ej. tengo el número 4861 -> 4+8+6+1=19 -> 1+9=10 ->1+0= 1*  Mí número sería el 1. »  luego el usuario del mismo foro Camello Ar trajo una solución bastante fácil y entendible, ahora yo como me me complico la vida pensé que pasaría si el usuario en ves de sumar quisiera restar o multiplicar? en anexo adjunto las 2 funciones.

<?php
    /**
     * PHP-Programación : Sumar Dígitos de un Número.
     * @Pregunta: Alguien sabe si existe una función, que sume todos los dígitos de un número y llegue como resultado a un solo dígito ?
     * Es decir, por ej. tengo el número 4861 -> 4+8+6+1=19 -> 1+9=10 ->1+0= 1Mí número sería el 1.
     * @Respuesta: decidi hacerla un mas extendida para poder (si en algun caso es necesario) cambiar el operdor por (multiplicacion, suma o resta) segun se necesite.
     *
     * @Author: KaMeKuN
     * @Param: int
     * @Return void
     **/
function justOneDigit($digit) {
$digit = str_split($digit);
$sum = 0;
for($i = 0; $i<count($digit); $i++) {
$sum += $digit[$i];
}
if(count(str_split($sum))<2)
return  $sum;
else
justOneDigit($sum);
}
echo justOneDigit(4861);

   /**
     * PHP-Programación : Sumar Dígitos de un Número.
     * @Respuesta :Por ahora no encontré nada directo pero puedes usar una iteracción (un while $numero <=9) con
     * @Author: Camello Ar
     * @mod: Rio-Abajo
     **/
 function justOneDigit2($digit) {
while($digit>9) {
$digit = (int) array_sum(str_split( (string) $digit ));
}
return  $digit;
}
echo justOneDigit2(4861);
?>