<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/tutorial.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'tutorial.useful.php',
    1 => 'Trucos pr&aacute;cticos',
    2 => 'Trucos pr&aacute;cticos',
  ),
  'up' => 
  array (
    0 => 'tutorial.php',
    1 => 'Una introducci&oacute;n a PHP',
  ),
  'prev' => 
  array (
    0 => 'tutorial.firstpage.php',
    1 => 'Su primera p&aacute;gina PHP',
  ),
  'next' => 
  array (
    0 => 'tutorial.forms.php',
    1 => 'Utilizar un formulario',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'chapters/tutorial.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="tutorial.useful" class="section">
   <div class="info"><h1 class="title">Trucos prácticos</h1></div>
   <p class="para">
    Realicemos ahora algo más potente. Vamos
    a verificar el tipo de navegador que el visitante de nuestro sitio utiliza.
    Para ello, accederemos a la información que el navegador
    del visitante nos envía, durante su petición HTTP. Esta información
    se almacena en una <a href="language.variables.php" class="link">variable</a>.
    Las variables son fáciles de identificar, ya que todas comienzan
    con un signo dólar. La variable que nos interesa aquí es
    <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER['HTTP_USER_AGENT']</a></var>.
   </p>
   <blockquote class="note"><p><strong class="note">Nota</strong>: 
    <p class="para">
     <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER</a></var> es una
     variable especial de PHP, que contiene toda la información
     relativa al servidor web. Es una variable reservada de PHP,
     y una superglobal. Consulte las páginas del manual que tratan de las
     <a href="language.variables.superglobals.php" class="link">Auto-globales</a>
     (también conocidas como super-globales).
    </p>
   </p></blockquote>
   <p class="para">
    Para mostrar esta variable, simplemente se puede hacer :
   </p>
   <p class="para">
    <div class="example" id="example-1">
    <div class="info"><p><strong>Ejemplo #1 Mostrar el contenido de una variable (elemento de array)</strong></p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'HTTP_USER_AGENT'</span><span style="color: #007700">];<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>
     Un resultado posible del script podría ser :
    </p></div>
    <div class="example-contents screen">
<div class="cdata"><pre>
Mozilla/5.0 (Linux) Firefox/112.0
</pre></div>
    </div>
   </div>
   </p>
   <p class="para">
    Hay muchos <a href="language.types.php" class="link">tipos</a> de
    variables disponibles en PHP. En el ejemplo anterior, hemos mostrado
    un elemento de una variable <a href="language.types.array.php" class="link">Array</a>.
    Los arrays pueden ser muy útiles.
   </p>
   <p class="para">
    <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER</a></var> es simplemente una variable que está automáticamente
    disponible en su script. Una lista de todas las variables que están
    disponibles se proporciona en la sección
    <a href="reserved.variables.php" class="link">Variables reservadas</a> o también se puede obtener una lista completa leyendo la salida de la función
    <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span> utilizada en el ejemplo de la sección anterior.
   </p>
   <p class="para">
    Se pueden añadir varios comandos PHP en una etiqueta PHP, y crear
    pequeños bloques de código que realizan operaciones más complejas
    que un simple mostrado. Por ejemplo, si queremos verificar que el
    navegador es de la familia Firefox, se puede
    hacer esto :
   </p>
   <p class="para">
    <div class="example" id="example-2">
     <div class="info"><p><strong>Ejemplo #2 Ejemplo utilizando las
     <a href="language.control-structures.php" class="link">estructuras de control</a> y
     las <a href="language.functions.php" class="link">funciones</a></strong></p></div>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">str_contains</span><span style="color: #007700">(</span><span style="color: #0000BB">$_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'HTTP_USER_AGENT'</span><span style="color: #007700">], </span><span style="color: #DD0000">'Firefox'</span><span style="color: #007700">)) {<br />    echo </span><span style="color: #DD0000">'Está utilizando Firefox.'</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

     <div class="example-contents"><p>
      El resultado de este script, si está utilizando Firefox, será :
     </p></div>
     <div class="example-contents screen">
<div class="cdata"><pre>
Está utilizando Firefox.
</pre></div>
     </div>
    </div>
   </p>
   <p class="para">
    Aquí, introducimos varios nuevos conceptos. Tenemos una
    estructura <a href="control-structures.if.php" class="link">if</a>.
    Si está familiarizado con las sintaxis básicas del lenguaje C, esto
    no le sorprenderá. Si no conoce lo suficiente el lenguaje C o
    otro lenguaje cuya sintaxis sea similar a la anterior, sería mejor
    que leyera una introducción a PHP, y asimilara
    los primeros capítulos, o bien lea el capítulo dedicado a
    <a href="langref.php" class="link">la referencia del lenguaje</a>.
   </p>
   <p class="para">
    El segundo concepto que hemos introducido es la función <span class="function"><a href="function.str-contains.php" class="function">str_contains()</a></span>.
    <span class="function"><a href="function.str-contains.php" class="function">str_contains()</a></span> es una función interna de PHP, que determina
    la presencia de una cadena dada en otra. En nuestro caso, hemos buscado la cadena <code class="literal">&quot;Firefox&quot;</code> en la cadena
    <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER['HTTP_USER_AGENT']</a></var>.
    De lo contrario, devuelve <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
    Si devuelve <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> la estructura <a href="control-structures.if.php" class="link">if</a>
    recibe <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> y el código entre llaves {} se ejecuta. De lo contrario, el código no se
    ejecuta. No dude en
    experimentar con otros ejemplos, utilizando
    <a href="control-structures.if.php" class="link">if</a>,
    <a href="control-structures.else.php" class="link">else</a>, y otras
    funciones como <span class="function"><a href="function.strtoupper.php" class="function">strtoupper()</a></span> y
    <span class="function"><a href="function.strlen.php" class="function">strlen()</a></span>. Cada página de la documentación también contiene ejemplos. Si no está seguro del uso de estas funciones, debe leer
    la página del manual
    &quot;<a href="about.prototypes.php" class="link">cómo leer una definición de función</a>&quot;
    así como la <a href="language.functions.php" class="link">sección sobre las funciones PHP</a>.
   </p>
   <p class="para">
    Ahora podemos avanzar y mostrarle cómo utilizar el modo PHP,
    en medio del código HTML :
   </p>
   <p class="para">
    <div class="example" id="example-3">
     <div class="info"><p><strong>Ejemplo #3 Pasar del modo PHP al modo HTML y viceversa</strong></p></div>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">str_contains</span><span style="color: #007700">(</span><span style="color: #0000BB">$_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'HTTP_USER_AGENT'</span><span style="color: #007700">], </span><span style="color: #DD0000">'Firefox'</span><span style="color: #007700">)) {<br /></span><span style="color: #0000BB">?&gt;<br /></span>&lt;h3&gt;str_contains() ha devuelto true&lt;/h3&gt;<br />&lt;p&gt;Está utilizando Firefox&lt;/p&gt;<br /><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">} else {<br /></span><span style="color: #0000BB">?&gt;<br /></span>&lt;h3&gt;str_contains() ha devuelto false&lt;/h3&gt;<br />&lt;p&gt;No está utilizando Firefox&lt;/p&gt;<br /><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

     <div class="example-contents"><p>
      Un ejemplo de resultado obtenido en este script es :
     </p></div>
     <div class="example-contents screen">
<div class="cdata"><pre>
&lt;h3&gt;str_contains() ha devuelto true&lt;/h3&gt;
&lt;p&gt;Está utilizando Firefox&lt;/p&gt;
</pre></div>
     </div>
    </div>
   </p>
   <p class="para">
    En lugar de utilizar un comando <span class="function"><a href="function.echo.php" class="function">echo</a></span>, para mostrar
    texto, se puede utilizar código HTML puro. El punto importante a tener en cuenta
    aquí es que la lógica de programación se conserva. Solo uno de los dos
    bloques HTML se mostrará, según el resultado de la función <span class="function"><a href="function.str-contains.php" class="function">str_contains()</a></span>.
    En otras palabras, depende de si la cadena <code class="literal">Firefox</code>
    ha sido encontrada o no.
   </p>
  </div><?php manual_footer($setup); ?>