PHP es uno de los lenguajes de pro­gra­ma­ción más usados en la pro­gra­ma­ción en el lado del servidor. Con el paso del tiempo, PHP se ha co­n­ve­r­ti­do en una parte esencial de muchas te­c­no­lo­gías web y páginas web modernas. Sin embargo, quienes empiezan a aprender PHP pueden en­co­n­trar­se ante un reto. En este tutorial de PHP, te mostramos los fu­n­da­me­n­tos de este popular lenguaje de pro­gra­ma­ción, así como sus ope­ra­do­res, bucles y funciones más im­po­r­ta­n­tes.

PHP tutorial: lo que debes saber

Nuestro tutorial se dirige sobre todo a pri­n­ci­pia­n­tes. Para algunos de los ejemplos, es útil contar con co­no­ci­mie­n­tos básicos en de­sa­rro­llo web moderno y HTML. Para poder poner en práctica los ejemplos mostrados, necesitas disponer de:

  • Servidor web con in­té­r­pre­te de PHP
  • Instalar PHP
  • Navegador web
  • Editor de texto

Como servidor, re­co­me­n­da­mos el entorno de de­sa­rro­llo XAMPP que Apache Friends ofrece de forma gratuita para los sistemas ope­ra­ti­vos Windows, Linux y macOS. XAMPP es ex­clu­si­va­me­n­te un servidor de pruebas. Los de­sa­rro­lla­do­res web pueden utilizar el paquete de software para co­n­fi­gu­rar en muy poco tiempo un entorno de pruebas completo para scripts, páginas HTML y hojas de estilo. Sin embargo, no se garantiza el fu­n­cio­na­mie­n­to seguro como servidor web en Internet. Accede a in­s­tru­c­cio­nes de­ta­lla­das en nuestro tutorial sobre XAMPP.

Hosting
Hosting de primera al mejor precio
  • 3x más rápido, ahora un 60 % de ahorro
  • Alta di­s­po­ni­bi­li­dad >99.99 %
  • Solo en IONOS: hasta 500 GB incluidos

PHP básico: la sintaxis del lenguaje de scripts

Una vez hayas co­n­fi­gu­ra­do tu servidor web local (por ejemplo, con ayuda de XAMPP), tienes que comprobar que PHP esté instalado co­rre­c­ta­me­n­tey pueda ejecutar scripts.

Abre tu editor de textos preferido e introduce el siguiente script de PHP:

<?php
phpinfo();
?>
php
Imagen: Código PHP en el editor de textos
Un editor de textos como Notepad++ ayuda a programar al poner de relieve la sintaxis
De­fi­ni­ción

Las funciones son su­b­pro­gra­mas que permiten ex­te­r­na­li­zar partes del código de programa. Para evitar la re­du­n­da­n­cia, se definen las tareas re­cu­rre­n­tes como funciones y se hace un lla­ma­mie­n­to a las mismas con ayuda de un nombre de función. Los de­sa­rro­lla­do­res utilizan para ello funciones de PHP pre­de­fi­ni­das o crean sus propios su­b­pro­gra­mas.

Guarda el archivo de texto con el nombre test en formato .php (script PHP) y abre el servidor web. Siempre y cuando utilices el entorno de prueba de XAMPP, coloca test.php en el di­re­c­to­rio de XAMPP en htdocs(C:\xampp\htdocs).

Se puede acceder al archivo del ejemplo in­tro­du­cie­n­do el siguiente URL en el navegador web: http://localhost/test.php. En caso de utilizar otro servidor web o la co­n­fi­gu­ra­ción pe­r­so­na­li­za­da del software de XAMPP, se­le­c­cio­na el URL de la ruta del archivo co­rre­s­po­n­die­n­te.

Al in­tro­du­cir el URL http://localhost/test.php se está indicando al navegador web que solicite el archivo test.php al servidor web. El servidor Apache HTTP u otro software de servidor web abre el archivo en el di­re­c­to­rio co­rre­s­po­n­die­n­te. La te­r­mi­na­ción .php informa de que el archivo contiene código PHP. Ahora se pone en marcha el in­té­r­pre­te de PHP integrado en el servidor web, el cual hace un recorrido por el documento hasta dar con la etiqueta PHP de apertura <?php, la cual señala el comienzo del código PHP. Tras ello, el in­té­r­pre­te ya tiene la capacidad de ejecutar el código PHP y de generar una salida en HTML que se envía al navegador desde el servidor web.

Si PHP se ha instalado co­rre­c­ta­me­n­te, aparecerá la página web siguiente como resultado de la ejecución del script:

Imagen: Función phpinfo() de PHP
Si se ejecuta un script con la función phpinfo(), el navegador mostrará in­fo­r­ma­ción sobre la co­n­fi­gu­ra­ción de PHP

La función phpinfo() consiste en la abre­via­tu­ra del valor estándar phpinfo( INFO_ALL ), el cual ofrece in­fo­r­ma­ción po­r­me­no­ri­za­da sobre la co­n­fi­gu­ra­ción de PHP en el servidor web. Si no se puede localizar ninguna versión de PHP, el navegador mostrará un mensaje de error o entregará el código PHP sin in­te­r­pre­tar al navegador.

“Hello World!” – Así puedes crear texto con echo

Si la in­s­ta­la­ción de PHP se lleva a cabo sin ningún tipo de errores, ya se pueden escribir los primeros scripts propios. Para ello es apropiada la in­s­tru­c­ción PHP echo . A di­fe­re­n­cia de phpinfo(), echo no re­pre­se­n­ta una función, sino que se trata, más bien, de una co­n­s­tru­c­ción del lenguaje que permite di­s­tri­buir el siguiente string como texto.

De­fi­ni­ción

Las palabras re­se­r­va­das son in­s­tru­c­cio­nes que se utilizan en PHP para controlar la ejecución de los programas. Entre las palabras re­se­r­va­das se en­cue­n­tran, además de echo, in­s­tru­c­cio­nes como if, for, do, include, return, exit o die. A di­fe­re­n­cia de las funciones, en este caso no se necesitan los pa­ré­n­te­sis.

Crea un nuevo archivo PHP para tu primer script propio y escribe el siguiente código:

<?php
echo 'Hello World!';
?>
php

La etiqueta de apertura <?php da comienzo a un entorno de script. A esta le sigue tanto la palabra reservada echo como el string Hello World! entre comillas simples. Con la etiqueta ?> se cierra el script. En este sentido hay que prestar atención al punto y coma que va detrás de la in­s­tru­c­ción. En lugar de Hello World!, se puede utilizar cualquier otro texto.

Guarda el script con el nombre de hello.php en la carpeta htdocs de tu servidor web y accede al archivo a través del URL http://localhost/hello.php en el navegador. Si el código se ha tra­n­s­mi­ti­do co­rre­c­ta­me­n­te, ahora debería mostrarse en la ventana del navegador la secuencia de ca­ra­c­te­res que has usado:

Imagen: Emisión de texto con la construcción del lenguaje echo
La co­n­s­tru­c­ción del lenguaje *echo* instruye al servidor web para que emita la secuencia de ca­ra­c­te­res *Hello World!*

Cada texto que se emite con echo puede estar formado por etiquetas HTML en caso de ser necesario, las cuales son in­te­r­pre­ta­das por parte del navegador web tras la co­rre­s­po­n­die­n­te es­pe­ci­fi­ca­ción de HTML. Puedes co­m­pro­bar­lo tú mismo, por ejemplo, con el siguiente script:

<?php
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
?>
php

Al hacer la solicitud al navegador web, se puede ver el resultado de la ejecución del script de la siguiente manera:

Imagen: Resultado de la ejecución de un script con etiquetas HTML
Si el resultado de la ejecución de script incluye etiquetas HTML, el navegador las in­te­r­pre­ta au­to­má­ti­ca­me­n­te.

La secuencia de ca­ra­c­te­res incluida en las etiquetas del <h1>, es decir, Hello World!, es in­te­r­pre­ta­da por el navegador como título de primer nivel y a esta le siguen un salto de línea au­to­má­ti­co y la etiqueta de párrafo <p>.

En función de las ne­ce­si­da­des, echo se puede emplear tanto con comillas sencillas () como con comillas dobles (). Si se quiere emitir texto, no hay di­fe­re­n­cia alguna con respecto al tipo de comillas que se escojan, pero esto cambia en cuanto las variables PHP entran en acción.

Variables

La palabra reservada echo resulta de una utilidad mayor que la propia emisión de texto, la cual puede im­ple­me­n­tar­se también sin PHP y tomando HTML como base. La verdadera plusvalía de echo está basada en el hecho de que la in­s­tru­c­ción permite generar textos de manera dinámica con ayuda de variables.

Los usuarios de PHP se pueden encontrar con variables que tienen, por ejemplo, la siguiente forma: $ejemplo

Cada variable consta del símbolo del dólar ($), seguido del nombre de la variable. Las variables se utilizan en los scripts de PHP para integrar datos externos en páginas web. En este sentido se puede hablar de valores muy variados que van desde números simples y cadenas de ca­ra­c­te­res hasta textos completos o es­tru­c­tu­ras de do­cu­me­n­tos HTML.

PHP di­fe­re­n­cia entre siete tipos de variables:

Tipos de variables De­s­cri­p­ción
String Un string es una secuencia de ca­ra­c­te­res, que puede tratarse de una palabra, de una frase, de un texto o de la totalidad del código HTML de una página web.
Integer Un integer es un número entero y sin decimales que puede ser positivo o negativo.
Float Un float es un número de punto flotante, es decir, un valor numérico con decimales. En los lenguajes de pro­gra­ma­ción, la coma se escribe con un punto (.). PHP permite colocar hasta 14 ca­ra­c­te­res detrás de la coma.
Boolean Las variables booleanas son el resultado de una operación lógica y solo co­m­pre­n­den dos co­n­s­ta­n­tes: TRUE (verdadero) y FALSE (falso). Este tipo de variables se aplica cuando se trabaja con co­n­di­cio­nes.
Array Un array es una variable que puede albergar varios elementos. Se trata de una agru­pa­ción de diversos datos es­tru­c­tu­ra­dos formando una matriz.
Object La variable object permite a los pro­gra­ma­do­res definir tipos de datos propios y se aplica en la pro­gra­ma­ción orientada a objetos. Las variables del tipo object no se incluyen en nuestro tutorial de PHP.
NULL NULL re­pre­se­n­ta una variable sin valor. Para las variables del tipo NULL, este es el único valor.

La ad­mi­ni­s­tra­ción central de los co­n­te­ni­dos tiene lugar, en general, con ayuda de sistemas de bases de datos. Los valores para las variables pueden definirse di­re­c­ta­me­n­te en el script. Este tipo de cla­si­fi­ca­ción se realiza según el esquema siguiente:

$ejemplo = "Valor";
php

El ca­ra­c­te­rí­s­ti­co símbolo del dólar va seguido del nombre de la variable (en este caso ejemplo), el cual se une al valor en­tre­co­mi­lla­do con el símbolo de igualdad (=). Los valores para las variables del tipo integer y float no se escriben entre comillas (p. ej., $ejemplo = 24; o $ejemplo = 2.7;)

PHP te da la libertad de designar variables según tu arbitrio, pero surgen aquí ciertas li­mi­ta­cio­nes:

  • Cada variable comienza con el símbolo del dólar.
  • El nombre de las variables es una secuencia de ca­ra­c­te­res formada por letras, números y guiones (p.ej., $ejemplo_1).
  • Un nombre de variable válido siempre comienza con una letra o con un guion bajo ($ejemplo1 o $_ejemplo), pero nunca con un número (in­co­rre­c­to: $1ejemplo).
  • PHP distingue entre ma­yú­s­cu­las y mi­nú­s­cu­las ($ejemplo ≠ $Ejemplo).
  • Los nombres de las variables no pueden contener espacios o saltos de línea (in­co­rre­c­to: $ejemplo 1)
  • El usuario no puede hacer uso libre de las se­cue­n­cias de ca­ra­c­te­res re­se­r­va­das por PHP para otros pro­pó­si­tos (p. ej., $this)

Veámoslo en un ejemplo:

<?php
$author = "John Doe";
echo "<h1>Hello World!</h1> 
<p>This dynamic web page was created by $author.</p>";
?>
php

La etiqueta de apertura de PHP va seguida de la de­fi­ni­ción de la variable: en el caso de $author se uti­li­za­ría el valor John Doe. A la hora de ejecutar el script, la variable $author se sustituye por el valor John Doe cada vez que se haga mención a ella en el entorno del script. El siguiente gráfico muestra cómo se refleja esto en el navegador web.

Imagen: Generación dinámica de texto con variables
En el resultado de la ejecución del script, a la variable $author se le asigna el valor John Doe

Si ocurre un error y la página web no procede de John Doe, sino de su colega alemán Max Mu­s­te­r­ma­nn, la variable con el nombre $author tiene que adaptarse para subsanar el fallo.

Imagen: Las variables permiten crean páginas web de manera dinámica
Para la variable $author se utiliza el valor Max Mu­s­te­r­ma­nn

Esto resulta es­pe­cia­l­me­n­te eficiente cuando una variable aparece varias veces en un script. En este caso solo se tiene que corregir una parte de esta, es decir, aquella en donde se haya definido el valor de la variable.

Aquí queda patente el punto fuerte de PHP: los co­n­te­ni­dos pueden in­te­grar­se como variables, lo que se co­n­s­ti­tu­ye como la base del de­sa­rro­llo web dinámico. A di­fe­re­n­cia de las páginas web estáticas, que se presentan como páginas HTML ex­tra­di­ta­bles, las páginas web dinámicas se generan en el momento en que se abren. Para ello, el in­té­r­pre­te de PHP descarga cada uno de los elementos de la página web so­li­ci­ta­da con ayuda de las variables de las di­fe­re­n­tes bases de datos y los integra en una página HTML ajustada a la solicitud.

Las ventajas de este concepto de diseño son evidentes: si se corrigen los elementos de la página web (p. ej., en el pie de página), no es necesario realizar los ajustes de forma manual en cada una de las su­b­pá­gi­nas del proyecto web. En lugar de eso, es su­fi­cie­n­te con ac­tua­li­zar la entrada en la base de datos. De esta manera, se asume la revisión de manera au­to­má­ti­ca para todas las páginas web que enlazan los datos co­rre­s­po­n­die­n­tes como variables.

Si una variable se define varias veces en un script, la nueva de­fi­ni­ción so­bree­s­cri­be a la anterior. El siguiente echo siempre ofrece el valor actual de una variable.

<?php
$author = "John Doe";
echo "<h1>Hello World!</h1> 
<p>This dynamic web page was created by $author.</p>";
$author = "Max Mustermann";
echo " <p>Supported by $author.</p>";
?>
php
Imagen: Proceso de sobreescritura de variables
El valor John Doe se so­bree­s­cri­be con el valor Max Mu­s­te­r­ma­nn

En el ejemplo de código se otorga el valor John Doe a la variable $author y, po­s­te­rio­r­me­n­te, se sustituye por el valor Max Mu­s­te­r­ma­nn.

En lo que respecta al uso de las comillas, a di­fe­re­n­cia de los strings, no es necesario que las variables se in­tro­du­z­can en­tre­co­mi­lla­das:

<?php
$author = "John Doe";
echo $author;
?>
php

Sin embargo, si la variable se tiene que utilizar dentro de un string, habrá que recurrir a las comillas dobles (). Estas indican al in­té­r­pre­te de PHP que tiene que buscar variables en el string para su­s­ti­tui­r­las con los valores asociados a ellas. Las se­cue­n­cias de ca­ra­c­te­res ex­pre­sa­das entre comillas simples () serán in­te­r­pre­ta­das y re­pro­du­ci­das como in­fo­r­ma­ción puramente textual incluso cuando sí son variables:

<?php
$author = "John Doe";
echo '<h1>Hello World!</h1> 
<p>This dynamic web page was created by $author.</p>';
?>
php
Imagen: Texto sin formato entre comillas simples
Las comillas simples dan lugar a texto sin formato. Las variables no se in­te­r­pre­tan.

Puede que a este respecto surja la pregunta de lo que pasaría si se eli­mi­na­ran las comillas co­m­ple­ta­me­n­te. En este caso PHP in­fo­r­ma­ría de un error de sintaxis.

Mensajes de error y en­ma­ra­s­ca­ra­mie­n­to

En caso de que haya errores si­n­tá­c­ti­cos, el código PHP no es válido y el in­té­r­pre­te de PHP emite un mensaje de error. También puede ocurrir lo mismo cuando, por ejemplo, se utiliza la in­s­tru­c­ción echo con un string sin comillas:

<?php
echo Hello World!;
?>
php

Los mensajes de error contienen, en la mayoría de los casos, in­fo­r­ma­ción acerca de la ubicación de los errores, ofre­cie­n­do, así, datos im­po­r­ta­n­tes para su erra­di­ca­ción.

Imagen: El navegador emite un mensaje de error: Parse error
Un mensaje de error informa de la presencia de errores si­n­tá­c­ti­cos en el código del programa

En dicho ejemplo es de suponer que hay un error en la línea 2 del código de programa, pues es exac­ta­me­n­te ahí donde hemos eliminado las comillas para de­mo­s­trar­lo.

Los errores si­n­tá­c­ti­cos también surgen cuando se quieren utilizar ca­ra­c­te­res como texto y estos están asociados con una de­te­r­mi­na­da tarea. Un ejemplo sería la comilla sencilla (’). Los símbolos como este solo aparecen en PHP en calidad de texto cuando se hace entender al in­té­r­pre­te que el símbolo no estaría re­la­cio­na­do con su verdadero objetivo. En el caso de las comillas simples, existen dos po­si­bi­li­da­des: por un lado, se puede enmarcar un string con comillas simples entre comillas dobles o, por otro, se pueden en­ma­s­ca­rar las comillas por medio de una barra invertida (\) :

<?php
echo '\'Hello World!\' ';
?>
php
Imagen: La barra invertida como símbolo de enmascaramiento
Si hay símbolos en­ma­s­ca­ra­dos con una barra invertida, estos serán exo­ne­ra­dos de su función en la sintaxis de PHP.

También es posible la co­m­bi­na­ción de comillas sencillas y dobles:

<?php
echo " 'Hello World!' ";
?>
php

Sin embargo, esta grafía re­su­l­ta­ría in­co­rre­c­ta:

<?php
echo ' 'Hello World!' ';
?>
php

En los ejemplos aparecen espacios entre las comillas para mejorar la le­gi­bi­li­dad de estos.

Ope­ra­do­res de co­n­ca­te­na­ción

Si se quiere incluir más de una variable en un script de PHP de manera si­mu­l­tá­nea, se puede hacer uso de lo aprendido hasta ahora:

<?php
$author1 = "John Doe";
$author2 = "Max Mustermann";
echo "<h1>Hello World!</h1> 
<p>This dynamic web page was created by $author1 and $author2.</p>";
?>
php

Ambas variables se escriben con el resto del texto que se va a vi­sua­li­zar en el string señalado con las comillas dobles. PHP reconoce au­to­má­ti­ca­me­n­te las variables mediante el símbolo del dólar ($) y coloca tras ellos los valores co­rre­s­po­n­die­n­tes.

Imagen: Texto resultante con dos variables
PHP solo acepta las variables en el string cuando el script no incluya ninguna función.

Entre los pro­gra­ma­do­res, seguir este pro­ce­di­mie­n­to es co­n­si­de­ra­do un trabajo sucio. En este sentido existe el dogma de que las variables no deberían formar parte del string y una de las razones para ello es que gran parte de los lenguajes de pro­gra­ma­ción exigen dicha se­pa­ra­ción. Lo más im­po­r­ta­n­te es, sin embargo, que PHP también reclama la se­pa­ra­ción de string y variable cuando se trabaja con llamadas a funciones o variables complejas. En este caso es re­co­me­n­da­ble realizar esta se­pa­ra­ción incluso en el caso del texto sin formato aun cuando no fuera es­tri­c­ta­me­n­te necesario.

Al trabajar con variables siempre entran en juego varios elementos que deben estar in­te­r­co­ne­c­ta­dos entre sí. Para ello entra en juego el operador de co­n­ca­te­na­ción (.).

Si se programa un código “limpio”, este debería tener el siguiente aspecto para el ejemplo me­n­cio­na­do an­te­rio­r­me­n­te:

<?php
$author1 = "John Doe";
$author2 = "Max Mustermann";
echo '<h1>Hello World!</h1> 
<p>This dynamic web page was created by ' . $author1 . ' and ' . $author2 . '.</p>';
?>
php
Imagen: Conexión de strings y variables con operadores de concatenación
Los ope­ra­do­res de co­n­ca­te­na­ción conectan strings y variables

Nos en­co­n­tra­mos aquí ante tres strings y dos variables que están en­ca­de­na­dos formando una secuencia de ca­ra­c­te­res.

String1 Variable1 String2 Variable2 String3
’&lt;h1>Hello World!&lt;/h1>
&lt;p>This dynamic web page was created by ’
. $author1 . ’ and ’ . $author2 . ’.&lt;/p>’

Es im­po­r­ta­n­te señalar que un operador de co­n­ca­te­na­ción une strings o variables sin espacios. Si se quiere incluir un espacio, este tiene que es­cri­bi­r­se, al igual que en el ejemplo, en el string y con comillas.

Los pro­gra­ma­do­res no solo hacen uso de los ope­ra­do­res de co­n­ca­te­na­ción para vincular strings y variables, sino también para prolongar las variables. Veamos cómo funciona con el siguiente ejemplo:

<?php
$example = 'Hello ';
$example .= 'World';
echo $example;
?>
php

Para prolongar el valor de una variable es necesario definirlo de nuevo, pero colocando el operador de co­n­ca­te­na­ción punto (.) delante del signo de igualdad. Se trataría de la abre­via­ción habitual para $example = $example . ‘World’($ejemplo = $ejemplo . ‘Mundo’).

PHP agrega el nuevo valor al ya pre­via­me­n­te definido. Si se quiere incluir un espacio entre ambos valores, este debe ir al final del primer string, tal y como se muestra en el ejemplo.

Imagen: Prolongación del valor de una variable
El string Hello se alarga y se convierte en Hello world.

Cómo enlazar PHP en HTML

El in­té­r­pre­te de PHP solo se interesa, en principio, por el código colocado entre una etiqueta de PHP de apertura y otra de cierre:

<?php [Esta área será analizada por el intérprete de PHP] ?>
php

Este ignora el resto de fra­g­me­n­tos del documento y los transmite al servidor web tal y como aparecen. De esta forma, el código PHP puede in­te­grar­se en cualquier documento HTML para, por ejemplo, crear una plantilla para un sistema de gestión de co­n­te­ni­dos. En este caso hay que tener en cuenta que los do­cu­me­n­tos HTML que contienen código PHP se han de guardar como archivos PHP. De lo contrario, el in­té­r­pre­te de PHP no podría procesar el documento, sino que este le sería entregado di­re­c­ta­me­n­te al navegador, lo que tendría como co­n­se­cue­n­cia que el código del programa apa­re­ce­ría como texto plano en la página web.

Se puede imaginar al in­té­r­pre­te de PHP como el colega perezoso del servidor web que solo trabaja cuando se le exige ex­plí­ci­ta­me­n­te por medio de, por ejemplo, una etiqueta de apertura de PHP.

Si quieres combinar HTML y PHP, escribe la página HTML en su forma habitual conforme a la es­tru­c­tu­ra clásica del documento y guárdala con la te­r­mi­na­ción .php.

<!DOCTYPE html>
<html lang="es">
    <head>
        <meta charset="utf-8">
        <title>My first PHP page</title>
    </head>
        <body>
    <h1>Hello World</h1>
    <p>What is the current time and date?</p>
    </body>
</html>
php

Co­m­ple­me­n­ta tu documento HTML para el script PHP, pero recuerda que la totalidad del código del programa ha de aparecer entre las etiquetas de PHP.

<!DOCTYPE html>
<html lang="es">
    <head>
        <meta charset="utf-8">
        <title>My first PHP page</title>
    </head>
    <body>
    <h1>Hello World</h1>
    <p>What is the current time and date?</p>
    <p>Your current time and date is: 
    <?php 
    echo date("d.m.Y H:i:s");
    ?>.</p>
    </body>
</html>
php

En el ejemplo se ha combinado la co­n­s­tru­c­ción del lenguaje echo con la función PHP date() para vi­sua­li­zar del lado del servidor la fecha y el horario actuales como texto. El parámetro de la función muestra el formato deseado en forma de string:

d.m.Y H:i:s = dia.mes.año hora:minuto:segundo
php

Si el navegador web solicita un archivo de tales ca­ra­c­te­rí­s­ti­cas, el in­té­r­pre­te de PHP ejecuta el script y escribe el horario actual en forma de texto en el documento HTML, el cual será entregado por el servidor web y será re­pre­se­n­ta­do como página web.

Imagen: Integración de PHP en HTML
El documento HTML contiene un script de PHP integrado, el cual muestra la fecha y el horario actual.

La función de PHP para los co­me­n­ta­rios

Al igual que el código HTML, PHP también da la po­si­bi­li­dad de incluir co­me­n­ta­rios. El in­té­r­pre­te de PHP ignora los co­me­n­ta­rios en el código fuente siempre y cuando estos tengan unas ca­ra­c­te­rí­s­ti­cas adecuadas para la sintaxis. Para ello, PHP pone a di­s­po­si­ción tres al­te­r­na­ti­vas di­fe­re­n­tes.

Si se quiere destacar toda una línea como co­me­n­ta­rio y excluirla de la in­te­r­pre­ta­ción, se utilizará la o las dos barras (//). En el siguiente ejemplo de código se emplean ambas po­si­bi­li­da­des:

<?php
#This is a single-line comment!
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
//This is also a single-line comment!
?>
php

El editor de textos Notepad++ resalta los co­me­n­ta­rios en color verde. Los pasajes de texto señalados como co­me­n­ta­rios en el entorno del script no llegan siquiera al navegador web, a di­fe­re­n­cia de los co­me­n­ta­rios en HTML, puesto que el in­té­r­pre­te de PHP los ignora ya a la hora de ejecutar el script.

Imagen: Comentarios de una sola línea con PHP
Las líneas marcadas como co­me­n­ta­rios no se vi­sua­li­zan en la pantalla en la que se muestra el texto re­su­l­ta­n­te

Asimismo, también se pueden insertar co­me­n­ta­rios que co­m­pre­n­den varias líneas. Para ello, se puede marcar el inicio de una sección con co­me­n­ta­rios con una barra seguida de un asterisco (/*) y el final con un asterisco seguido de una barra (*/).

<?php
/*
This is a multiple-lines comment block
that spans over multiple
lines
*/
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
?>
php

Este tipo de co­me­n­ta­rios de­s­ta­ca­dos no son ana­li­za­dos si­n­tá­c­ti­ca­me­n­te y, por lo tanto, no aparecen en la página web.

Imagen: Ejemplo de un comentario de varias líneas
El co­me­n­ta­rio de varias líneas no se visualiza en el texto publicado

Los pro­gra­ma­do­res utilizan los co­me­n­ta­rios para es­tru­c­tu­rar el código fuente de los scripts, para hacer in­di­ca­cio­nes para su posterior edición o para añadir datos internos como por ejemplo el autor o la fecha.

Aunque la inclusión de co­me­n­ta­rios es opcional, no es re­co­me­n­da­ble abusar de su usopara ga­ra­n­ti­zar la buena le­gi­bi­li­dad del código fuente.

Rea­li­za­ción de cálculos con variables

En nuestro tutorial para aprender a utilizar PHP ya has podido fa­mi­lia­ri­zar­te con las variables, a las que se han asignado en primera instancia valores string (cadenas de ca­ra­c­te­res). Ahora pasaremos a ocuparnos de variables que re­pre­se­n­tan números enteros (integers) o números de punto flotante (floats).

Si las variables almacenan valores numéricos, PHP ofrece la po­si­bi­li­dad de realizar cálculos con ellas. Veamos a co­n­ti­nua­ción la tra­du­c­ción de una suma sencilla de dos números enteros:

<?php
$numero1 = 237;
$numero2 = 148;
$resultado = $numero1 + $numero2;
echo "Resultado: " . $resultado;
?>
php

En primer lugar, a las variables $numero1 y $numero2 se les asigna los números enteros 237 y 148 y, a co­n­ti­nua­ción, se define una variable del tipo $resultado, la cual alberga la suma de las variables $numero1 y $numero2. Para ello se emplea el operador ari­t­mé­ti­co +(más). Por último, se emite el resultado de la suma con ayuda del co­n­s­tru­c­torecho como texto. Hay que tener en cuenta en este sentido que en la asi­g­na­ción de valores numéricos a las variables no son ne­ce­sa­rias las comillas.

Imagen: Suma de números enteros con ayuda de un script de PHP
El resultado de la suma se muestra en forma de texto en el navegador web

El siguiente ejemplo de código, del que mostramos la versión en español de la su­b­si­guie­n­te captura de pantalla, muestra una selección de cálculos ma­te­má­ti­cos que se pueden llevar a cabo con ope­ra­do­res PHP del lado del servidor. Los ope­ra­do­res empleados se co­rre­s­po­n­den con gran parte de los ope­ra­do­res ari­t­mé­ti­cos es­ta­n­da­ri­za­dos de las ma­te­má­ti­cas.

Operador ari­t­mé­ti­co Operación Resultado
$numero1 + $numero2 Adición Suma de $numero1 y $numero2
$numero1 - $numero2 Su­s­tra­c­ción Di­fe­re­n­cia de $numero1 y $numero2
$numero1 * $numero2 Mu­l­ti­pli­ca­ción Producto de $numero1 y $numero2
$numero1 / $numero2 División Cociente de $numero1 y $numero2
$numero1 $numero2** Ex­po­ne­n­cia­ción Resultado de elevar $numero2 a la potencia $numero1
<?php
$numero1 = 10;
$numero2 = 5;
$adicion = $numero1 + $numero2; 
$sustraccion = $numero1 - $numero2; 
$multiplicacion = $numero1 * $numero2; 
$division = $numero1 / $numero2; 
$exponenciacion = $numero1 ** $numero2; 
?>
<?php 
echo "Resultado de la adición: " . $adicion ."<br />"; 
echo "Resultado de la sustracción: " . $sustraccion . "<br />"; 
echo "Resultado de la multiplicación: " . $multiplicacion . "<br />";
echo "Resultado de la división: " . $division . "<br />";
echo "10 elevado a la quinta potencia (10^5): " . $exponenciacion . "<br />";
echo "Raíz de 81: " . sqrt(81) . "<br />";
?>
php
Imagen: Cálculos con variables en inglés
Resumen de ope­ra­cio­nes ma­te­má­ti­cas en inglés

Para los cálculos más complejos se pueden combinar las di­fe­re­n­tes ope­ra­cio­nes ari­t­mé­ti­cas en un mismo script. Veamos cómo se plasmaría esto en español:

<?php
$numero1 = 10;
$numero2 = 5;
$resultado = 2 *$numero1 + 5* $numero2 - 3 * sqrt(81);
echo "Resultado: " . $resultado; 
?>
php

El in­té­r­pre­te PHP determina los valores de las variables y calcula:

2 *10 + 5* 5 - 3 * √81 = 20 + 25 – 27 = 18
php

La función sqrt() calcula la raíz cuadrada del parámetro entre pa­ré­n­te­sis. En este caso se aplica la clásica jerarquía de ope­ra­do­res de las ma­te­má­ti­cas: los ope­ra­do­res de mu­l­ti­pli­ca­ción y división tienen pre­ce­de­n­cia sobre los de adición y su­s­tra­c­ción. La in­s­tru­c­ción echo ofrece el resultado como string para el navegador web.

Imagen: Cálculo matemático con dos variables y diferentes operadores aritméticos
PHP se atiene a la regla de que los ope­ra­do­res de mu­l­ti­pli­ca­ción y división tienen pre­ce­de­n­cia sobre los de adición y su­s­tra­c­ción

Los términos entre pa­ré­n­te­sis son los que primero se evalúan en PHP. Ahora nos ce­n­tra­re­mos en los números de punto flotante:

<?php
$numero1 = 2.5;
$numero2 = 3.7;
$resultado = 2 *($numero1 + 5)* ($numero2 - 3) * sqrt(81);
echo "Resultado: " . $resultado; 
?>
php
Imagen: Cálculo con números de punto flotante y términos entre paréntesis
PHP emite el resultado 94.5

Como los lenguajes de pro­gra­ma­ción más ha­bi­tua­les, PHP también soporta ope­ra­do­res para aumentar o disminuir en el valor 1 los valores numéricos. En este sentido, se puede di­fe­re­n­ciar entre el operador de prei­n­cre­me­n­to, el de pre­de­cre­me­n­to, el de po­s­ti­n­cre­me­n­to y el de po­s­t­de­cre­me­n­to.

Operación Operador Resultado
Prei­n­cre­me­n­to ++$numero El operador ++ in­cre­me­n­ta el valor de la variable $numero, de forma que el valor aumenta en 1. El resultado será devuelto como el nuevo valor para $numero.
Pre­de­cre­me­n­to –$numero El operador disminuye el valor de la variable $numero, de forma que el valor disminuye en 1. El resultado se co­n­ve­r­ti­rá en el nuevo valor para $numero.
Po­s­ti­n­cre­me­n­to $numero++ Se devuelve el valor actual de $numero y se in­cre­me­n­ta el valor en 1.
Po­s­t­de­cre­me­n­to $numero– Se devuelve el valor actual de $numero y se disminuye el valor en 1.

En el ejemplo del prei­n­cre­me­n­to se de­mue­s­tran las ope­ra­cio­nes ari­t­mé­ti­cas con ope­ra­do­res de in­cre­me­n­to y de­cre­me­n­to. El siguiente script en español in­cre­me­n­ta el valor de la variable $numero en 1, guarda el valor nuevo en la variable $resultado y emite su valor como string:

<?php
$numero = 0;
$resultado = ++$numero;
echo "Resultado: " . $resultado;
?>
php

Si el valor 0 se in­cre­me­n­ta en 1, se obtiene el resultado 1.

Imagen: Preincremento del número 0
El operador ++ in­cre­me­n­ta 0 en 1

Para calcular el pre­de­cre­me­n­to de la variable $number ($numero) se recurre a los mismos scripts, pero cambiando el operador de prei­n­cre­me­n­to I (++) por el operador de de­cre­me­n­to ():

<?php
$numero = 0;
$resultado = --$numero;
echo "Resultado: " . $resultado;
?>
php

Al reducir el valor 0 de la variable $number ($numero), se obtiene el resultado -1.

Imagen: Predecremento del número 0
El operador -- hace disminuir el número 0 en 1

El in­cre­me­n­to anterior o posterior (pre o post) de un valor puede ponerse de relieve en el siguiente script. Veámoslo con más claridad en la tra­du­c­ción del scree­n­shot en cuestión:

<?php
$x = 0;
echo '<p>Resultado: ' . ++$x;
echo '<br>x tiene el valor ' . $x;
echo '<p>Resultado: ' . $x++;
echo '<br>x tiene el valor ' . $x, '</p>';
?>
php

En ambos casos se obtiene el mismo resultado. En el prei­n­cre­me­n­to se in­cre­me­n­ta el valor x antes de la edición en la línea 3 y en el po­s­ti­n­cre­me­n­to esto ocurre en la línea 5.

Imagen: Diferencia entre pre y postincremento
Co­m­pa­ra­ti­va entre pre y po­s­ti­n­cre­me­n­to

Las su­pe­r­glo­ba­ls $_GET y $_POST

Una vez has conocido los fu­n­da­me­n­tos de PHP y ya te sabes manejar con las variables, puedes co­n­ca­te­nar­las y realizar cálculos. En este apartado te contamos por qué las variables son un factor esencial a la hora de programar scripts.

Una función im­po­r­ta­n­te de los lenguajes de pro­gra­ma­ción es que estos ofrecen la po­si­bi­li­dad de analizar las entradas de los usuarios y de tra­n­s­fe­rir los valores a otros scripts. Para ello, PHP se basa en las su­pe­r­glo­ba­ls $_GET y $_POST, variables de sistema pre­de­fi­ni­das que están di­s­po­ni­bles en todos los ámbitos de validez. Como arrays aso­cia­ti­vos (campos de datos), $_GET y $_POST almacenan un conjunto de variables en forma de strings en una variable.

Los arrays de PHP pueden ima­gi­nar­se como si fueran un armario con varios cajones, cada uno de los cuales ofrece la po­si­bi­li­dad de archivar datos. Para poder saber po­s­te­rio­r­me­n­te lo que alberga cada uno de dichos cajones, estos reciben un nombre de variable, que, en función del tipo de array, se puede tratar de un index o de una key (llave). Mientras que en el caso de los arrays indexados se le otorga a cada cajón un índice en forma de número, a los cajones de un array aso­cia­ti­vo se les asigna una key en forma de string (secuencia de ca­ra­c­te­res).

Las su­pe­r­glo­ba­ls $_GET y $_POST contienen una serie de variables en forma de llaves que permiten llegar a los valores vi­n­cu­la­dos a dichas llaves. Ha­bla­re­mos en detalle de este tema cuando nos centremos en las su­pe­r­glo­ba­ls $_GET y $_POST.

Tra­n­s­fe­re­n­cia de datos vía $_GET

La su­pe­r­glo­bal $_GET re­pre­se­n­ta un array de variables que se tra­n­s­fie­re a un script PHP con ayuda de un URL.

Si visitas weblogs, tiendas online o foros de Internet, es posible que te hayan llamado la atención los pe­cu­lia­res URL que aparecen en ellos. Suelen generarse siguiendo el esquema siguiente:

http://nombredeequipo/carpeta/nombredearchivo.php?nombredevariable=valordevariable

En un weblog, el esquema puede tener la siguiente apa­rie­n­cia:

http://www.ejemplo-blog.es/index.php?id=1

Un URL de este tipo puede de­s­glo­sar­se de manera muy sencilla: en un servidor web con el dominio ejemplo-blog.es existe un archivo con el nombre index.php, que sirve para crear una página web dinámica. Por lo general, este contiene código HTML y PHP, así como enlaces a archivos de pla­n­ti­llas y a hojas de estilo externas, es decir, todo lo necesario para re­pre­se­n­tar una página web.

El indicador que delata que se trata de una página web dinámica es el código que sigue al signo de in­te­rro­ga­ción (?): id=1. Este recibe la de­no­mi­na­ción de HTTP query string o cadena de consulta de HTTP y está formando por una variable (id) y un valor (1), ambos unidos por el signo igual. Los pa­rá­me­tros URL de este tipo se utilizan, por ejemplo, para generar páginas web dinámicas, para cargar co­n­te­ni­dos de las bases de datos o para solicitar la plantilla adecuada.

Las páginas web dinámicas permiten la se­pa­ra­ción entre contenido y pre­se­n­ta­ción. El elemento index.php contiene prá­c­ti­ca­me­n­te toda la in­fo­r­ma­ción sobre la es­tru­c­tu­ra de la página web, pero no alberga los co­n­te­ni­dos. Estos se depositan no­r­ma­l­me­n­te en una base de datos y se puede acceder a ellos a través de los pa­rá­me­tros en el HTTP query string. En nuestro ejemplo, el URL entrega al index.php el parámetro id=1, el cual determina qué co­n­te­ni­dos de la base de datos se tienen que leer y cargarse en el index.php. En el caso de los weblogs se trata, ge­ne­ra­l­me­n­te, del ide­n­ti­fi­ca­dor de un artículo de­te­r­mi­na­do. En los foros esto permite visitar una entrada o, en las tiendas online, ver un producto de­te­r­mi­na­do.

Si un URL contiene más de un parámetro, estos se unen entre sí con el símbolo et (&).

www.ejemplo-blog.es/index.php?page=article&id=1

No es necesario recurrir a una base de datos para entender cómo se emplea $_GET en un ejemplo de código. En el siguiente script se utiliza la su­pe­r­glo­bal $_GET para in­te­r­pre­tar los valores de las variables nombreyapellido (forename y surname) de una cadena de consulta HTTP y para es­cri­bi­r­los en las variables PHP $variable1 y $variable2:

<?php
$variable1 = $_GET['forename'];
$variable2 = $_GET['surname'];
echo "Hello " . $variable1 . " " . $variable2 . "!";
?>
php

Para abrir el script usamos el siguiente URL:

localhost/hello.php?forename=John&surname=Doe

Con ello se entregan los pa­rá­me­tros forename=Johnysurname=Doe. La emisión de los valores tiene lugar, como hasta ahora, con ayuda de la co­n­s­tru­c­ción del lenguaje echo.

Imagen: Transmisión de datos por medio de $_GET
Los pa­rá­me­tros de URL entregan al script de PHP el par de valores de las variables forename=John y surname=Doe

La tra­n­s­mi­sión de datos vía $_GET da lugar in­e­vi­ta­ble­me­n­te a que los datos tra­n­s­fe­ri­dos se puedan vi­sua­li­zar en la línea de di­re­c­cio­nes. En todo momento puede co­m­pro­bar­se cuáles son los pa­rá­me­tros que se van a entregar, lo que tiene la ventaja de que las variables pueden guardarse en hi­pe­re­n­la­ces. Además, los usuarios de Internet también tienen la po­si­bi­li­dad de depositar los URL e incluso el query string de HTTP como marcador en el navegador.

El hecho de que el parámetro GET se ejecute en el URL como texto sin codificar, de­s­ca­li­fi­ca, sin embargo, a este método para la entrega de datos sensibles como los que albergan los fo­r­mu­la­rios online. Asimismo, el volumen de datos que se puede entregar por medio de la su­pe­r­glo­bal $_GET está limitado a la longitud máxima de los URL, li­mi­ta­cio­nes que pueden evitarse con el método POST de HTTP. Los datos tra­n­s­fe­ri­dos con él se en­cue­n­tran en la su­pe­r­glo­bal $_POST.

Tra­n­s­fe­re­n­cia de datos vía $_POST

Mientras que los datos que se tra­n­s­fie­ren mediante el método GET se entregan como pa­rá­me­tros URL, la tra­n­s­fe­re­n­cia de datos vía $_POST se realiza en el cuerpo de una petición HTTP. Esto permite tra­n­s­fe­rir grandes ca­n­ti­da­des de datos de un script a otro.

Un campo de apli­ca­ción esencial del método HTTP-POST es la tra­n­s­mi­sión de datos de fo­r­mu­la­rios HTML. Veámoslo con el ejemplo de una su­s­cri­p­ción a una ne­w­s­le­t­ter.

Para ello, crea un nuevo archivo PHP con el nombre page1.php e incluye el siguiente bloque de código en español (para ver el código en inglés, consulta el scree­n­shot que aparece a co­n­ti­nua­ción):

<form method="post" action="page2.php" >
Por favor, envía la newsletter a: <br />
Tu nombre: <input type="text" name="nombre" /><br />
Tu apellido: <input type="text" name="apellido" /><br />
Tu correo electrónico: <input type="text" name="email" /><br />
<input type="submit" value="Enviar formulario" />
</form>
php

En la creación de fo­r­mu­la­rios entra en juego el elemento HTML <form>. Este incluye en la etiqueta de inicio dos atributos: methodyaction. Con el primero se pueden definir los métodos de tra­n­s­mi­sión, en este caso el método POST de HTTP. En el atributo action se deposita el URL de un script que recibe todos los datos re­gi­s­tra­dos a través de los si­guie­n­tes campos de entrada. El ejemplo muestra un fo­r­mu­la­rio HTML con tres elementos de entrada(input type=“text”) y un botón de envío(input type=“submit”). Como receptor de los datos, se define el archivo page2.php.

Para entender la tra­n­s­fe­re­n­cia de datos por medio de $_POST, re­cu­rri­mos a un script sencillo para el análisis de los datos del fo­r­mu­la­rio que almacena los valores in­tro­du­ci­dos como variables PHP en formato de texto. Crea para ello un archivo page2.php e inserta el siguiente código de pro­gra­ma­ción:

<?php
$nombre = $_POST["nombre"];
$apellido = $_POST["apellido"];
$email = $_POST["email"]; 
echo "Hola " . $nombre . " " . $apellido . ", <br /> 
Te has registrado con el siguiente correo electrónico: " . $email . ".";
?>
php

Guarda los dos archivos PHP en la carpeta htdocs de tu servidor de prueba y abre page1.php con el siguiente URL en el navegador web: http://localhost/page1.php. El navegador muestra entonces la interfaz web in­ter­ac­ti­va de tu fo­r­mu­la­rio HTML.

Imagen: Entrada de datos por medio de un formulario HTML
El fo­r­mu­la­rio HTML pagina1.php incluye datos de usuario y los envía al script con la dirección page2.php

Introduce cualquier dato de registro y haz clic en el botón de enviar para tra­n­s­fe­rir variables de un script a otro. Tan pronto como confirmes los datos en page1.php, se te redirige di­re­c­ta­me­n­te a page2.php. La ventana del navegador muestra el resultado de la ejecución del script en base a los datos tra­n­s­mi­ti­dos.

Imagen: Emisión de los datos de usuario
Tra­n­s­mi­sión de datos con el método POST de HTTP y emisión vía echo

La page2.php solicita los datos de usuario re­gi­s­tra­dos a través de los campos de entrada de la page1.php por medio del siguiente esquema:

$_POST[“Nombre del campo de entrada”]

Así es como la línea $forename = $_POST[“forename”] solicita el nombre de pila en el campo de entrada y lo guarda en la variable $forename, que, a su vez, se emite como string gracias a echo.

El co­n­s­tru­c­tor if y los ope­ra­do­res de co­m­pa­ra­ción de PHP

Hasta ahora hemos definido las variables, pero también hemos mostrado cómo se tra­n­s­mi­ten estas de un script a otro y se emiten en forma de strings. A co­n­ti­nua­ción, te mostramos cómo se puede vincular la ejecución de los fra­g­me­n­tos de código con unas co­n­di­cio­nes de­te­r­mi­na­das.

El co­n­s­tru­c­tor if brinda la po­si­bi­li­dad de escribir scripts de tal manera que las in­s­tru­c­cio­nes surten efecto cuando el usuario cumple una de las co­n­di­cio­nes previstas, como puede ser, por ejemplo, la in­tro­du­c­ción de una co­n­tra­se­ña correcta.

Las co­n­di­cio­nes se pueden definir en PHP según la siguiente es­tru­c­tu­ra básica:

<?php
if(expression)
    {
    statement;
    }
?>
php

Esta se lee de la siguiente manera: solo en aquellos casos en los que se cumpla la condición en ex­pre­s­sion se podrá ejecutar el statement. Una condición se ha cumplido cuando el co­n­s­tru­c­tor if da como resultado TRUE (verdadero). De no ser así, este se in­te­r­pre­ta como FALSE (falso), en cuyo caso se omitirá la in­s­tru­c­ción.

Por regla general, el co­n­s­tru­c­tor if comprueba si el valor de una variable se co­rre­s­po­n­de con lo definido en la condición. Esta es­tru­c­tu­ra de control tiene lugar no­r­ma­l­me­n­te en base a los ope­ra­do­res de co­m­pa­ra­ción.

Ope­ra­do­res de co­m­pa­ra­ción

Los ope­ra­do­res de co­m­pa­ra­ción se utilizan a la hora de formular co­n­di­cio­nes, con el objetivo de poner dos ar­gu­me­n­tos en una relación lógica que se puede evaluar como verdadera (TRUE) o falsa (FALSE). Si se emplean los ope­ra­do­res de co­m­pa­ra­ción en las es­tru­c­tu­ras de control de PHP, estos pueden im­ple­me­n­tar­se con dos variables en la ex­pre­s­sion de un co­n­s­tru­c­tor if:

if ($a == $b) 
   {
   statement;
   }
php

Ex­pre­se­mos la es­tru­c­tu­ra de control con palabras: las co­n­di­cio­nes definidas se llevan a cabo en caso de que la variable $a sea equi­va­le­n­te a la variable $b.

Los ope­ra­do­res de co­m­pa­ra­ción de PHP se basan en el lenguaje de pro­gra­ma­ción C y se di­fe­re­n­cian co­n­si­de­ra­ble­me­n­te de los símbolos ma­te­má­ti­cos clásicos en su escritura. En la tabla siguiente te ofrecemos una lista detallada de los mismos:

Operador de co­m­pa­ra­ción De­s­cri­p­ción Co­n­di­cio­nes
== Igual La condición se cumple si $a y $b muestran el mismo valor.
=== Idéntico La condición se cumple si $a y $b muestran el mismo valor y pe­r­te­ne­cen al mismo tipo de datos. Esto se puede vi­sua­li­zar en un ejemplo en el que se compara un íntegro (1) con un string (“1”): 1 == “1” //TRUE 1 === “1” //FALSE Lo más re­co­me­n­da­ble es utilizar siempre el operador de co­m­pa­ra­ción === (idéntico) para aquellas co­n­di­cio­nes que requieren dos variables.
!= Diferente La condición se cumple si $a y $b tienen valores di­fe­re­n­tes.
!== No idéntico La condición se cumple si $a y $b tienen valores que no son iguales o que pe­r­te­ne­cen a tipos de datos di­fe­re­n­tes.
< Menor que La condición se cumple si el valor de $a es menor que el de $b.
> Mayor que La condición se cumple si el valor de $a es mayor que el de $b.
<= Menor o igual que La condición se cumple si el valor de $a es menor que el valor de $b o si $a y $b tienen el mismo valor.
>= Mayor o igual que La condición se cumple si el valor de $a es mayor que el valor de $b o si $a y $b tienen el mismo valor.

El siguiente script debe arrojar luz a esta es­tru­c­tu­ra de control, en la que se comparan dos números enteros. El operador de co­m­pa­ra­ción que se utiliza es <(menor que):

<?php
$numero1 = 10;
$numero2 = 20;
if($numero1 < $numero2) { 
    echo "Se cumple la condición";
}
php

En este caso, se definen las variables $numero1 y $numero2 y se les asignan los valores 10y20. A co­n­ti­nua­ción, se establece una condición: si $numero1 es menor que $numero2, se emitirá el string me­n­cio­na­do en la condición de echo.

El resultado de la ejecución del script contiene la respuesta: 10 es menor que 20. El co­n­s­tru­c­tor if devuelve el resultado TRUE. Tras ello, se puede decir que la condición se ha cumplido (The condition is fulfilled).

Imagen: El constructor if en la aplicación
Si se cumple la condición, se ejecuta la in­s­tru­c­ción.
<?php
if(condición a)
    {
    instrucción b;
    }
else 
    {
    instrucción c
    }
?>
php

Este script también comprueba si la condición a devuelve el resultado TRUE o FALSE. Si se cumple la condición a (TRUE) se ejecutará la in­s­tru­c­ción b. Si no se cumple la condición a (FALSE), se saltará la in­s­tru­c­ción b y, en su lugar, se ejecutará la in­s­tru­c­ción c.

A co­n­ti­nua­ción, ampliamos nuestro script con el co­n­s­tru­c­tor else y cambiamos el operador de co­m­pa­ra­ción < (menor que) por == (igual):

<?php
$numero1 = 10;
$numero2 = 20;
if($numero1 == $numero2) 
    { 
    echo "La condición se cumple";
    }
else 
    {
    echo "La condición no se cumple";
    }
?>
php

En este caso, el co­n­s­tru­c­tor if ofrece como resultado FALSE. El valor de la variable $numero1 no es igual que el valor de la variable $numero2. La condición no se cumple (The condition is not fulfilled). Por lo tanto, no se ejecuta bajo la in­s­tru­c­ción if, sino bajo la definida por else.

Imagen: El constructor else en la aplicación
Si no se cumple la condición, se ejecuta la in­s­tru­c­ción definida por else.
Nota

Si la ejecución de un fragmento de código está sujeta a la igualdad de dos valores, se utiliza el signo igual dos veces (==). Se utiliza un único signo de igualdad (=) en el proceso de ad­ju­di­ca­ción de valores a variables.

La negación de las co­n­di­cio­nes tiene lugar mediante un signo de ex­cla­ma­ción (!) dentro de la ex­pre­s­sion.

<?php
$numero1 = 10;
$numero2 = 20;
if ($numero1 == $numero2) 
    { 
    echo "Los números son iguales.";
    }
if (!($numero1 == $numero2))
    {
    echo "Los números no son iguales.";
    }
?>
php

El ejemplo muestra la condición $numero1 == $numero2 y su negación. !($numero1 == $numero2) equivale a ($numero1 != $numero2).

Una apli­ca­ción práctica de ifyelse es, por ejemplo, la solicitud de co­n­tra­se­ña en un fo­r­mu­la­rio HTML. A co­n­ti­nua­ción, veamos una si­mu­la­ción con ayuda de los ficheros PHP page1.phpypage2.php.

Abre el fichero page1.php e introduce el siguiente código de fo­r­mu­la­rio:

<form action="page2.php" method="post">
Por favor, introduce tu contraseña: <input type="password" name="contraseña" />
<input type="submit" value="Enviar" />
</form>
php

La es­tru­c­tu­ra se co­rre­s­po­n­de con el fo­r­mu­la­rio ya creado. En este caso solo es necesario un campo de entrada: la solicitud de la co­n­tra­se­ña. Como se ha descrito an­te­rio­r­me­n­te, las entradas del usuario se comunican al script page2.php.

Este puede adaptarse con el siguiente código de manera que la in­tro­du­c­ción de la co­n­tra­se­ña se compare con una co­n­tra­se­ña ya fa­ci­li­ta­da:

<?php
$contrasena = $_POST["contrasena"];
if($contrasena=="qwertz123")
    {
    echo "La contraseña es correcta";
    }
else
    {
    echo "La contraseña es incorrecta";
    }
?>
php

El código puede leerse de la siguiente manera: en primer lugar, le asignamos un valor a la variable $co­n­tra­se­na en la línea 2, al que se accede a través del método POST de HTTP. A co­n­ti­nua­ción, se define la siguiente es­tru­c­tu­ra de control: el co­n­s­tru­c­tor if de la línea 3 debe verificar si el valor de la variable $co­n­tra­se­na coincide con el string qwertz123. En caso de ser así, se obtiene el string The password was correct (La co­n­tra­se­ña es correcta). Si el co­n­s­tru­c­tor if da como resultado FALSE, entra en juego en la línea 7 el co­n­s­tru­c­tor else y se emite el string The password was incorrect(La co­n­tra­se­ña es in­co­rre­c­ta).

Se puede acceder al script page1.php a través del URL http://localhost/page1.php.

Imagen: Interfaz web del formulario HTML para la solicitud de la contraseña
El fo­r­mu­la­rio HTML exige la in­tro­du­c­ción de una co­n­tra­se­ña.

El navegador presenta la vista web del fo­r­mu­la­rio HTML para la solicitud de la co­n­tra­se­ña. Aquí se responde a la solicitud, se introduce la co­n­tra­se­ña quertz123 definida en el script page2.php y, a co­n­ti­nua­ción, se hace clic en el botón de enviar.

Imagen: La contraseña es correcta
El script confirma que se ha in­tro­du­ci­do la co­n­tra­se­ña correcta.

El navegador redirige au­to­má­ti­ca­me­n­te a la page2.php. En un segundo plano, el co­n­s­tru­c­tor if compara la co­n­tra­se­ña in­tro­du­ci­da con la guardada y concluye que “qwertz123 == qwertz123 is TRUE”. Se­gui­da­me­n­te emite el string The password was correct(La co­n­tra­se­ña es correcta).

Comprueba tú mismo lo que ocurre al in­tro­du­cir una co­n­tra­se­ña diferente en el campo de entrada.

Ope­ra­do­res lógicos

Las co­n­di­cio­nes que se definen con ayuda de los ope­ra­do­res de co­m­pa­ra­ción en la ex­pre­s­sion del co­n­s­tru­c­tor if pueden enlazarse, en caso necesario, con otras co­n­di­cio­nes en la misma ex­pre­s­sion. PHP se basa, para ello, en los ope­ra­do­res lógicos ANDyOR.

Vínculo estrecho Vínculo débil De­s­cri­p­ción
&& AND Las dos co­n­di­cio­nes vi­n­cu­la­das con el operador deben estar definidas por el valor TRUE.
|| OR Una de las co­n­di­cio­nes vi­n­cu­la­das por el operador tiene que ser TRUE.

Para enlazar co­n­di­cio­nes, PHP cuenta con ope­ra­do­res lógicos que es­ta­ble­cen vínculos estrechos o débiles. El hecho de decidirse por una u otra opción no plantea di­fe­re­n­cias en la práctica. Si estas se combinan, sin embargo, es fácil darse cuenta que OR y || es­ta­ble­cen un vínculo más estrecho que AND y OR. Además, el vínculo creado por AND y && es más estrecho que OR y ||. Esto es co­m­pa­ra­ble con la jerarquía de ope­ra­do­res, tal como se conoce por los ope­ra­do­res ma­te­má­ti­cos (por ejemplo, los ope­ra­do­res de mu­l­ti­pli­ca­ción y división tienen pre­ce­de­n­cia sobre los de adición y su­s­tra­c­ción: establece un vínculo más estrecho que +).

Un ejemplo práctico de esto es el que ofrece la solicitud de co­n­tra­se­ña. Por lo general, los datos de registro se componen de una co­n­tra­se­ña secreta y de un nombre de usuario. Solo se podrá llevar a cabo el registro en aquellos casos en los que tanto un dato como el otro coincidan con los fa­ci­li­ta­dos en el sistema.

En este caso, volvemos a abrir el fo­r­mu­la­rio para la solicitud de la co­n­tra­se­ña en la page1.php y añadimos un campo de entrada para el nombre de usuario:

<form action="page2.php" method="post">
Nombre de usuario: <input type="text" name="username" /><br />
Contraseña: <input type="password" name="password" /><br />
<input type="submit" value="Enviar" />
</form>
php

En el paso siguiente hay que adaptar la es­tru­c­tu­ra de control del co­n­s­tru­c­tor if. Para ello es necesario recurrir al operador lógico AND y enlazar, así, la condición para la solicitud de la co­n­tra­se­ña con una condición para la solicitud del nombre de usuario.

<?php
$username = $_POST["username"];
$password = $_POST["password"];
if($username=="John Doe" AND $password=="qwertz123")
    {
    echo "Bienvenido al área interna " . $username . "!";
    }
else
    {
    echo "Acceso denegado";
    }
?>
php

El script page2.php recibe los valores para nombre de usuarioyco­n­tra­se­ña y los almacena en las variables $username y $password. La ex­pre­s­sion del co­n­s­tru­c­tor if contiene dos co­n­di­cio­nes que están vi­n­cu­la­das con el operador lógico AND. Solo cuando se hayan cumplido ambas co­n­di­cio­nes (username==“John Doe”y$password==“qwertz123”), el co­n­s­tru­c­torifofrecerá como resultadoTRUE.

Debido a que el nombre de usuario se obtiene a través del campo de entrada username, este puede uti­li­zar­se di­re­c­ta­me­n­te para publicar el texto vía echo: a Welcome to the internal área (Bie­n­ve­ni­do al área interna) le sigue el valor de la variable $username. Si no se cumple una de las dos co­n­di­cio­nes, se recibirá el texto Access denied (Acceso denegado).

Imagen: Solicitud de contraseña con dos condiciones
El script solo co­n­fi­r­ma­rá la entrada de la co­n­tra­se­ña cuando se cumplan ambas co­n­di­cio­nes.

Los ope­ra­do­res lógicos pueden co­m­bi­nar­se li­bre­me­n­te. En este sentido se puede co­n­si­de­rar que AND tiene una jerarquía de ope­ra­do­res superior a OR. Del mismo modo que ocurre con las ecua­cio­nes ma­te­má­ti­cas, en PHP también se pueden utilizar pa­ré­n­te­sis para influir en la jerarquía.

Bucles (while, for)

A veces es necesario que un script recorra un de­te­r­mi­na­do segmento de código varias veces antes de que se ejecute el resto del código del programa. Para ello, los lenguajes de pro­gra­ma­ción utilizan el concepto de bucle, a los que también se les denomina también loops PHP. Aquí se pueden di­fe­re­n­ciar tres tipos:

  • bucles while
  • bucles do-while
  • bucles for

Bucles while

Los bucles while son los bucles más sencillos de PHP. Su es­tru­c­tu­ra base obedece al siguiente esquema:

while (condición)
    {
    Paso del bucle y otras instrucciones
    }
php

Los bucles while instan a PHP a ejecutar in­s­tru­c­cio­nes su­bo­r­di­na­das en tanto que la condición while se cumpla. Para ello, el in­té­r­pre­te de PHP comprueba la condición al principio de cada vuelta del bucle. La ejecución del código su­bo­r­di­na­do se para cuando la condición while ya no se cumple. Se puede vi­sua­li­zar este principio con un sencillo script con números. A co­n­ti­nua­ción, la versión en español:

<?php
$numero = 1;
while ($numero <= 10) {
    echo $numero++ . "<br />";  
    }
	?>
php

En el apartado “Rea­li­za­ción de cálculos con variables” anterior ya se introdujo el principio del in­cre­me­n­to. En el siguiente script re­cu­rri­mos a dicho principio, pero uti­li­za­mos un operador de po­s­ti­n­cre­me­n­to para aumentar en 1 el valor del integer de la variable $number ($numero) cada vez que el bucle dé una vuelta tras la pu­bli­ca­ción del texto vía echo. Como condición para el bucle while definimos que $number sea menor/igual a 10. La in­s­tru­c­ción echo se repetirá tantas veces como sea necesario para que $number reciba un valor superior a 10.

Imagen: El script cuenta hasta 10 e interrumpe el bucle
El script in­cre­me­n­ta la variable $number hasta alcanzar un valor mayor que 10. Entonces el bucle deja de eje­cu­tar­se.

El resultado de la ejecución del script es un string que, cada vez que el bucle da una vuelta, emite el valor de la variable $number antes de que este se in­cre­me­n­te. El script cuenta de 1 a 10 y finaliza la ejecución del código en cuanto no se cumple la condición while.

Bucles do-while

La co­n­s­tru­c­ción de los bucles do-while se asemeja a la de los bucles while. La di­fe­re­n­cia solo radica en que la condición no se comprueba al principio de cada vuelta del bucle, sino al final. El esquema básico de un bucle do-while se co­rre­s­po­n­de con el siguiente ejemplo:

do {
     Paso del bucle y otras instrucciones
     } 
    while (Condición)
php

Cuando se programa un bucle do-while, el script re­su­l­ta­n­te tiene el siguiente aspecto:

<?php
$numero = 1;
do {
    echo $numero++ . "<br />";
    }
while ($numero <= 10); 
	?>
php

En este caso, el resultado es el mismo. Lo peculiar en el bucle do-while es que este se ejecuta al menos una vez, aun cuando la condición no se cumpla en ninguna ejecución del bucle.

Bucles for

Bá­si­ca­me­n­te, los bucles for tienen la misma fu­n­cio­na­li­dad en un script de PHP que los bucles while. A di­fe­re­n­cia de estos, sin embargo, el valor inicial, la condición y la in­s­tru­c­ción se anotarán dentro de una línea y no se di­s­tri­bui­rán a lo largo de tres o más líneas.

La es­tru­c­tu­ra base del bucle for tiene el siguiente esquema:

for (valor inicial; condición; paso del bucle)
    instrucciones
php

Este ejemplo en español puede en­te­n­de­r­se como bucle for en forma compacta:

<?php
for($numero = 1; $numero <= 10; $numero++) {
    echo $numero . "<br /> ";
}
?>
php

En primer lugar, se define el valor 1 para la variable $numero. Po­s­te­rio­r­me­n­te, PHP comprueba si se cumple la condición $numero <= 10. Si es correcto, el bucle continúa y se ejecutan las in­s­tru­c­cio­nes por debajo del bucle (en este caso, la in­s­tru­c­ción echo). Solo entonces se ejecuta el bucle, en cuyo caso no tiene im­po­r­ta­n­cia si se ha optado por el prei­n­cre­me­n­to o por el po­s­ti­n­cre­me­n­to, puesto que esta in­s­tru­c­ción se realiza con an­te­rio­ri­dad a la emisión. Si el paso del bucle ha concluido, dará comienzo la siguiente vuelta.

El valor inicial, la condición o el paso del bucle son elementos op­cio­na­les de un bucle for. En teoría, son posibles incluso los bucles vacíos, aunque serían re­du­n­da­n­tes.

Bá­si­ca­me­n­te, tomar una decisión acerca de si los scripts PHP deben incluir bucles for o while depende de cada uno. Existe, sin embargo, un argumento que demuestra que los bucles for ganan la partida: si se aplican bucles for, se pueden controlar mejor los datos fu­n­da­me­n­ta­les del bucle. Esto co­n­tri­bu­ye a prevenir el peligro de escribir un bucle que funcione hasta que la memoria del in­té­r­pre­te esté llena. Esto ocurre en re­fe­re­n­cia al ejemplo me­n­cio­na­do si se olvida in­cre­me­n­tar el valor de la variable $numero.

En caso de que el bucle tenga que funcionar al menos una vez in­de­pe­n­die­n­te­me­n­te de la condición, el bucle do-while es el bucle que habría que elegir.

breakycontinue

Se puede influir en el tra­n­s­cu­r­so de un bucle while, do-while o for por medio de las in­s­tru­c­cio­nes breakycontinue. Se usabreakpara in­te­rru­m­pir el tra­n­s­cu­r­so de un bucle en cualquier lugar ycontinuepara omitir una vuelta del bucle. Tanto una in­s­tru­c­ción como la otra están co­ne­c­ta­das a una condición por medio del co­n­s­tru­c­torif. En el ejemplo siguiente, tanto el original como la tra­du­c­ción muestran un script numérico con unbreak:

<?php
for ($numero = 1; $numero <= 10; $numero++) {
    if ($numero== 5) {
      echo "El script se para al llegar a 5";
      break;
    }
echo $numero . "<br /> ";
}
?>
php

En el bucle for hemos definido que el valor de la variable $numero ($number) se in­cre­me­n­te en 1 en cada vuelta hasta que la variable haya alcanzado el valor 10. Ahora, con la in­s­tru­c­ción break, el bucle se puede in­te­rru­m­pir con an­ti­ci­pa­ción en cuanto $numero ($number) haya alcanzado el valor 5. El co­n­s­tru­c­tor echo solo ofrece los números co­m­pre­n­di­dos entre el 1 y el 4.

Imagen: Bucle for con break
La in­s­tru­c­ción break in­te­rru­m­pe el bucle en cuanto se cumple la condición if.

Para omitir la edición de la quinta vuelta, pero no in­te­rru­m­pir para ello todo el tra­n­s­cu­r­so del bucle, se reemplaza la in­s­tru­c­ción break por continue:

<?php
for ($numero=1; $numero <= 10; $numero++) {
    if ($numero == 5) {
      echo "¡Se omite la 5!<br />";
      continue;
    }
echo $numero . "<br /> ";
}
?>
php

En lugar del número 5, PHP ofrece el string textual definido bajo if ¡Se omite la 5!(We skip number 5!).

Imagen: Bucle for con la instrucción continue
El bucle for omite una vuelta por medio de la in­s­tru­c­ción continue.

Ope­ra­cio­nes con archivos

Las páginas web dinámicas se basan en la se­pa­ra­ción entre contenido y pre­se­n­ta­ción, de ahí que los lenguajes de pro­gra­ma­ción como PHP ofrezcan di­fe­re­n­tes fu­n­cio­na­li­da­des que permiten cargar co­n­te­ni­dos de fuentes de datos externas en archivos de pla­n­ti­llas centrales. En la práctica, estas fuentes de datos son bases de datos que se ad­mi­ni­s­tran con ayuda de sistemas de gestión de co­n­te­ni­dos como MySQL. Para saber cómo funciona, visita nuestro tutorial de MySQL.

Además, existe la po­si­bi­li­dad de integrar datos pro­ce­de­n­tes de archivos. A co­n­ti­nua­ción, te mostramos cómo se pueden leer archivos como string en un script PHP y cómo se pueden guardar los textos de tus scripts en archivos.

Lectura de archivos

Para leer el contenido de un archivo, PHP ofrece di­fe­re­n­tes funciones, de las cuales file() y file_get_contents() son las más apro­pia­das para nuestros objetivos. Mientras que la funciónfile_get_contents()sirve para leer la totalidad del contenido de un archivo en un string, la funciónfile()guarda el contenido en forma de array. Cada elemento del array se co­rre­s­po­n­de con una línea del archivo. Mediantefile() es más sencillo emitir cada línea por separado.

A co­n­ti­nua­ción, de­mo­s­tra­mos las ope­ra­cio­nes con archivos PHP con el archivo example.txt que alojamos en el di­re­c­to­rio htdocs de nuestro servidor de prueba. El contenido del archivo lo componen cuatro líneas del texto Lorem ipsum:

Lorem ipsum dolor sit amet, co­n­se­c­te­tuer adi­pi­s­ci­ng elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis pa­r­tu­rie­nt montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pe­lle­n­te­s­que eu, pretium quis, sem.

El primer paso consiste en leer todo el archivo como string. Para ello hay que asignarle a la función file_get_contents() el nombre del archivo co­rre­s­po­n­die­n­te como parámetro. Esto tiene lugar en función del esquema siguiente:

`file_get_contents(example.txt')`
php

Ahora ya podemos trabajar con este string ya leído, al que podemos, por ejemplo, asignar una variable y emitirla como texto en el navegador web:

<?php
$example = file_get_contents('example.txt');
echo $example;
?>
php
Imagen: El script lee el archivo example.txt
El archivo leído se emite como texto en el navegador

En la vista del navegador se puede ver el texto devuelto sin párrafos. Los saltos de línea del archivo original no se pueden vi­sua­li­zar, lo que guarda relación con el hecho de que el navegador web in­te­r­pre­ta el texto del script como código HTML, por lo que se pierden los ajustes que se definen en los editores de texto.

Si quieres mantener la es­tru­c­tu­ra original, puedes recurrir a di­fe­re­n­tes po­si­bi­li­da­des. Puedes añadir ma­nua­l­me­n­te la co­di­fi­ca­ción HTML para el salto de línea (br) en el archivo de origen, etiquetar con <pre> el contenido del archivo y asignar la propiedad CSS white-space: pre-wrap a esta sección o puedes utilizar la función nl2br() para indicar a PHP que los saltos de línea (new lines) deben tra­n­s­fo­r­mar­se au­to­má­ti­ca­me­n­te en saltos de línea en HTML (breaks). Se ha de utilizar la función siguiendo el siguiente esquema:

<?php
$example = file_get_contents('example.txt');
echo nl2br($example);
?>
php

Si se emplea el co­n­s­tru­c­tor del lenguaje echo en co­m­bi­na­ción con nl2br(), PHP inserta un salto de línea en HTML antes de cada línea.

Imagen: Aplicación de la función nl2br()
La función nl2br() sirve de ayuda para la es­tru­c­tu­ra­ción de los datos leídos.

Para que las líneas de un archivo se vi­sua­li­cen por separado, puedes recurrir a la función file(), la cual lee el archivo, numera todas las líneas que comienzan por 0 y guarda sus co­n­te­ni­dos como elementos de un array. Tra­s­la­da­do a nuestro ejemplo, se obtiene la siguiente cla­si­fi­ca­ción:

[0] = Lorem ipsum dolor sit amet, co­n­se­c­te­tuer adi­pi­s­ci­ng elit.

[1] = Aenean commodo ligula eget dolor. Aenean massa.

[2] = Cum sociis natoque penatibus et magnis dis pa­r­tu­rie­nt montes, nascetur ridiculus mus.

[3] = Donec quam felis, ultricies nec, pe­lle­n­te­s­que eu, pretium quis, sem.

Para emitir el contenido co­rre­s­po­n­die­n­te mediante el co­n­s­tru­c­tor del lenguaje echo, es necesario indicar el número de línea deseado. Así, el siguiente script de ejemplo entrega al navegador la primera línea del archivo example.txt:

<?php
$example = file("example.txt");
echo $example [0];
?>
php
Imagen: Aplicación de la función file()
Escoge el elemento del array que quieres publicar.

Escritura de archivos

Con PHP no solo se pueden leer archivos, sino que el lenguaje de pro­gra­ma­ción también da la po­si­bi­li­dad de crearlos y de de­s­cri­bi­r­los con co­n­te­ni­dos.

Para ello, se utiliza la función de PHP file_put_contents(), que espera dos pa­rá­me­tros: el nombre del archivo que se tiene que crear o ac­tua­li­zar y los datos en forma de string o array.

El siguiente script crea el fichero test.txt y escribe el string This is a test! (¡Esto es un test!) en la primera línea. El su­ple­me­n­to \r\n da lugar a un salto de línea en el archivo de destino. Veámoslo:

<?php
file_put_contents("test.txt", "This is a test! \r\n");
echo "test.txt was created!";
?>
php
Imagen: Operaciones con archivos: escritura de archivos
El script de PHP escribe el string This is a test! en el archivo test.txt

Puesto que la función file_put_contents no entrega emisión alguna para el navegador, añadimos una in­s­tru­c­ción echo que nos indica cuál es la acción que se va a llevar a cabo.

Si la carpeta de destino ya contiene un archivo con el mismo nombre, este se so­bre­s­cri­bi­rá, lo que se evita de­te­r­mi­na­n­do el parámetro FILE_APPEND.

<?php
file_put_contents("test.txt","The test was successful! \r\n", FILE_APPEND);
echo "test.txt was updated!";
?>
php

Si se utiliza file_put_contents() con el parámetro FILE_APPEND, se agregarán nuevos co­n­te­ni­dos a los ya exi­s­te­n­tes.

Imagen: Operaciones con archivos: actualización de archivos
El script de PHP agrega el string *The test was su­c­ce­s­s­ful!* al archivo *test.txt*

Lo que PHP escribe en el archivo de destino no tiene por qué ir definido obli­ga­to­ria­me­n­te en el script. Como al­te­r­na­ti­va también existe la po­si­bi­li­dad de tra­n­s­mi­tir los co­n­te­ni­dos de un archivo a otro. El siguiente script lee el contenido del fichero example.txt y lo inserta en el fichero test.txt:

<?php
$example= file_get_contents("example.txt");
file_put_contents("test.txt", $example, FILE_APPEND);
echo "test.txt was updated!";
?>
php
Imagen: Operaciones con archivos: transmisión del contenido de un archivo a otro
El script de PHP lee los datos del fichero example.txt y los añade al fichero test.txt
Ir al menú principal