Ver Mensaje Individual
  #8 (permalink)  
Antiguo 01/03/2016, 04:44
dairoroberto2014
 
Fecha de Ingreso: marzo-2016
Mensajes: 2
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Script para crear nombres de usuario

Código PHP:
Ver original
  1. /*Paso aqui un scrip que espero logres resolver:*/
  2. public function generateUserByFullName($fullName)
  3.     {
  4.         $user = null;
  5.         $temp = explode(' ', $fullName);
  6.         if (count($temp) > 0)
  7.         {
  8.             $allowedVars = null;
  9.             foreach ($temp as $value)
  10.             {
  11.                 if (strlen($value) > 3)
  12.                 {
  13.                     $allowedVars[] = $value;
  14.                 }
  15.             }
  16.         }
  17.         $vars['FN'] = $allowedVars[0];
  18.         $vars['FI'] = substr($allowedVars[0], 0, 1);
  19.  
  20.         $vars['MN'] = $allowedVars[1];
  21.         $vars['MI'] = substr($allowedVars[1], 0, 1);
  22.  
  23.         if (isset($allowedVars[2]))
  24.         {
  25.             $vars['SN'] = $allowedVars[2];
  26.             $vars['SI'] = substr($allowedVars[2], 0, 1);
  27.         }
  28.         if (isset($allowedVars[3]))
  29.         {
  30.             $vars['LN'] = $allowedVars[3];
  31.             $vars['LI'] = substr($allowedVars[3], 0, 1);
  32.         }
  33.  
  34.         $variants = array('FN', 'MN', 'SN', 'LN', 'FI', 'MI', 'SI', 'LI');
  35.        //posibles variantes a seguir, que se utilizarán de forma aleatoria o que se prefiera
  36.         $allowedConbinations = array(
  37.             '4.2',
  38.             '4.3',
  39.             '4.2.3',
  40.             '2.4',
  41.             '3.4',
  42.             '2.3.4',
  43.             '3.2.4',
  44.             '0.2',
  45.             '0.3',
  46.             '0.2.3',
  47.             '2.0',
  48.             '3.0',
  49.             '2.3.0',
  50.             '3.2.0',
  51.             '0.6',
  52.             '0.7',
  53.             '0.6.7',
  54.             '6.7.0',
  55.             '7.6.0',
  56.             '1.6.7',
  57.             '6.7.1',
  58.             '7.6.1',
  59.             '5.2.3',
  60.             '2.3.5',
  61.             '3.2.5',
  62.             '2.3.1',
  63.             '3.2.1',
  64.             '1.2.3',
  65.             '5.2',
  66.             '5.3',
  67.             '2.5',
  68.             '3.5',
  69.             '1.2',
  70.             '1.3',
  71.             '2.1',
  72.             '3.1',
  73.             '1.6',
  74.             '1.7',
  75.             '4.5.2',
  76.             '2.4.5',
  77.             '4.5.3',
  78.             '3.4.5',
  79.             '4.5.2.3',
  80.             '2.3.4.5',
  81.             '3.2.4.5',
  82.             '0.5.2',
  83.             '0.5.3',
  84.             '4.1.3',
  85.             '0.5.2.3',
  86.             '4.1.2.3',
  87.             '2.3.0.5',
  88.             '3.2.0.5',
  89.             '2.3.4.1',
  90.             '3.2.4.1'
  91.         );
  92.  
  93.        $runVariants = explode('.', $allowedConbinations[rand(0, count($allowedConbinations) - 1)]);
  94.         if (count($runVariants) > 0)
  95.         {
  96.             $user = '';
  97.             foreach ($runVariants as $value)
  98.             {
  99.                 if (isset($vars[$variants[$value]]))
  100.                 {
  101.                     if(strlen($user) <= 12)
  102.                      {
  103.                           $user.= $vars[$variants[$value]];
  104.                      }
  105.                 }
  106.             }
  107.         }
  108.         return $user;
  109.     }