<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.misc.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.uniqid.php',
    1 => 'uniqid',
    2 => 'Genera un identificador basado en el tiempo',
  ),
  'up' => 
  array (
    0 => 'ref.misc.php',
    1 => 'Funciones Varias',
  ),
  'prev' => 
  array (
    0 => 'function.time-sleep-until.php',
    1 => 'time_sleep_until',
  ),
  'next' => 
  array (
    0 => 'function.unpack.php',
    1 => 'unpack',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/misc/functions/uniqid.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.uniqid" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">uniqid</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">uniqid</span> &mdash; <span class="dc-title">Genera un identificador basado en el tiempo</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.uniqid-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>uniqid</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$prefix</code><span class="initializer"> = &quot;&quot;</span></span>, <span class="methodparam"><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> <code class="parameter">$more_entropy</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong></span></span>): <span class="type"><a href="language.types.string.php" class="type string">string</a></span></div>

  <p class="para rdfs-comment">
   Genera un identificador basado en la hora actual con una precisión a la microsegundo,
   prefijado por el <code class="parameter">prefix</code> dado y añadiendo
   eventualmente un valor generado aleatoriamente.
  </p>
  <div class="caution"><strong class="caution">Precaución</strong>
 <p class="para">
  Esta función no genera valores criptográficamente seguros, y <em>no debe</em>
  ser utilizada con fines criptográficos, o con fines que requieran que los valores devueltos sean indescifrables.
 </p>
 <p class="para">
  Si se requiere aleatoriedad criptográficamente segura, el <span class="classname"><a href="class.random-randomizer.php" class="classname">Random\Randomizer</a></span> puede ser utilizado
  con el motor <span class="classname"><a href="class.random-engine-secure.php" class="classname">Random\Engine\Secure</a></span>. Para casos de uso simples, las funciones
  <span class="function"><a href="function.random-int.php" class="function">random_int()</a></span> y <span class="function"><a href="function.random-bytes.php" class="function">random_bytes()</a></span> proporcionan una <abbr title="Application Programming Interface">API</abbr>
   práctica y segura que es soportada por el <abbr title="Cryptographically Secure PseudoRandom Number Generator">CSPRNG</abbr> del sistema operativo.
 </p>
</div>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="para">
    Esta función no garantiza la unicidad del valor devuelto
    ya que este se basa en la hora actual en microsegundos
    o en la hora actual con una pequeña cantidad de datos aleatorios añadidos
    si <code class="parameter">more_entropy</code> es <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>.
   </p>
  </div>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.uniqid-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">prefix</code></dt>
     <dd>
      <p class="para">
       Puede ser útil, por ejemplo, para identificar fácilmente diferentes hosts, si se genera
       simultáneamente en varios hosts que pueden generar el
       mismo identificador en la misma microsegundo. (Esto puede ocurrir
       incluso en un solo host si el reloj del sistema se mueve hacia atrás,
       por ejemplo por un ajuste NTP.)
      </p>
      <p class="para">
       Sin <code class="parameter">prefix</code> (prefijo vacío), la
       cadena devuelta tendrá 13 caracteres. Si
       <code class="parameter">more_entropy</code> es <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, tendrá 23
       caracteres.
      </p>
     </dd>
    
    
     <dt><code class="parameter">more_entropy</code></dt>
     <dd>
      <p class="para">
       Si el parámetro opcional <code class="parameter">more_entropy</code> es
       <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, <span class="function"><strong>uniqid()</strong></span> añadirá una entropía
       <code class="literal">&quot;combined LCG&quot;</code> al final del valor devuelto,
       lo que aumenta la probabilidad de la unicidad del resultado.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.uniqid-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   Devuelve un identificador basado en el timestamp, en forma de <span class="type"><a href="language.types.string.php" class="type string">string</a></span>.
  </p>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="para">
    Esta función no garantiza la unicidad del valor devuelto.
   </p>
  </div>
 </div>


 <div class="refsect1 examples" id="refsect1-function.uniqid-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Ejemplo con <span class="function"><strong>uniqid()</strong></span></strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/* Un identificador único, como: 4b3403665fea6 */<br /></span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"uniqid(): %s\r\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">uniqid</span><span style="color: #007700">());<br /><br /></span><span style="color: #FF8000">/* También podemos prefijar el identificador único,<br /> * lo que equivale a:<br /> *<br /> * $uniqid = $prefix . uniqid();<br /> * $uniqid = uniqid($prefix);<br /> */<br /></span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"uniqid('php_'): %s\r\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">uniqid</span><span style="color: #007700">(</span><span style="color: #DD0000">'php_'</span><span style="color: #007700">));<br /><br /></span><span style="color: #FF8000">/* También podemos activar el parámetro more_entropy,<br /> * requerido por algunos sistemas, como Cygwin. Esto hará que<br /> * uniqid() produzca un valor como: 4b340550242239.64159797<br /> */<br /></span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"uniqid('', true): %s\r\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">uniqid</span><span style="color: #007700">(</span><span style="color: #DD0000">''</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.uniqid-notes">
  <h3 class="title">Notas</h3>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <p class="para">
    En Cygwin, el parámetro <code class="parameter">more_entropy</code> debe ser
    pasado a <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> para que esta función funcione.
   </p>
  </p></blockquote>
 </div>

 <div class="refsect1 seealso" id="refsect1-function.uniqid-seealso">
  <h3 class="title">Ver también</h3>
  <ul class="simplelist">
   <li><span class="function"><a href="function.random-bytes.php" class="function" rel="rdfs-seeAlso">random_bytes()</a> - Obtiene bytes aleatorios criptogr&aacute;ficamente seguros</span></li>
  </ul>
 </div>

</div><?php manual_footer($setup); ?>