PHP – Lenguaje de programación de lado del servidor
Cuando un programador está familiarizado con los lenguajes de programación del lado del cliente (HTML, JavaScript…) tal vez se haya preguntado, cómo es posible que un periódico, un portal, un chat, un foro… estén en actualización continua.
Descartada la opción de tener a un programador 24h al día, 365 días al año, actualizando la web decenas de veces al día, queda preguntarse cuál es la tecnología que lo hace posible.
En este post nos centraremos en el lenguaje de programación más popular de entre los que pueden hacer posible esa magia de la actualización en continuo. Hablaremos sobre PHP: Cuál fue su origen, cómo funciona, para qué se usa y cuáles son sus ventajas y desventajas. Y, por supuesto, te daremos las primeras nociones básicas para que te animes a empezar a programar del lado del servidor.
¡Pasa, disfruta, aprende y comparte!
Pongamos que tenemos la página web de una empresa, cuyo contenido, en principio, va a ser siempre el mismo: ¿Quiénes somos? ¿Qué hacemos? ¿Cómo lo hacemos? Y contacto.
Si en un momento puntual tenemos que cambiar, pongamos, el teléfono, editamos el HTML y listo.
Pero puede que decidamos, muy sabiamente, dar un valor añadido a la página para atraer público recurrente. En cuyo caso podríamos crear un blog para publicar periódicamente nuestra opinión sobre los acontecimientos del sector. ¿Vamos a estar editando el HTML cada vez que añadamos una nueva entrada? ¿Y cuando haya muchas? ¿Vamos a paginarlas a mano?
Lógicamente, no es la opción más práctica, ya que con apenas unas pocas líneas de código, podemos realizar la tarea de manera automática. De forma que a través de un formulario introduzcamos las nuevas entradas, que se almacenan en una base de datos, y el frontend (la parte pública de la web), se encargará de mostrar siempre la última entrada y paginar las demás. Sin escribir ni una línea de código extra cada vez que actualice.
Pues bien, eso es posible gracias a PHP, un lenguaje de programación cuyas siglas en inglés significan Hypertext Preprocessor y podríamos traducirlo como Preproceso de Hipertexto, o más inteligible, Lenguaje de Programación Interpretado.
¿Qué significa eso?
Que mientras una web estática funciona bajo el siguiente esquema:
Páginas estáticas: Petición –> Respuesta
Una web programada con PHP funciona bajo este otro esquema:
Páginas dinámicas: Petición –> Procesado y preparación –> Respuesta
Esta leve diferencia permite que una web sea dinámica, y su contenido no tenga porqué ser siempre el mismo.
La manera de trabajar de PHP, es además muy sencilla: Permite embeber código dentro de la matriz HTML, pudiendo hacer que esa parte concreta de la web, sea dinámica. Para ello, basta con señalizar el inicio y final del código PHP con las etiquetas <?php ?>
Por ejemplo:
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8" /> <title> Ejemplo básico PHP</title> </head> <body> <?php echo 'Hola '.$nombre; ?> </body> </html>
Donde $nombre es una variable que puede adquirir cualquier contenido, pudiéndose recoger de un formulario, una base de datos, etc… De manera que, dependiendo de quién acceda a la web, ésta puede realizar un saludo personalizado: “Hola Marcos”, “Hola Teresa”…
A mayor escala, pero continuando con la misma lógica, no sólo podremos ir variando un saludo, sino el contenido, personalizar la apariencia de una web en base a las preferencias de los usuarios, crear tiendas online, foros, chats, buscadores…
Pero hay algunas pegas:
- Las webs con PHP se ejecutan del lado del servidor, por lo que para ver las actualizaciones de las mismas, debemos refrescarla. Así, la petición irá nuevamente al servidor, comprobará si hay, por ejemplo, noticias más nuevas que las que se nos están mostrando, las procesará y nos las servirá en HTML.Este “problema” sin embargo, tiene fácil solución. Ya que con AJAX, podemos realizar actualizaciones con PHP sin necesidad de refrescar.
- Como el código que se nos remite es el resultante del preproceso, no podemos ver en el código fuente qué código PHP es el que se ha utilizado para desarrollar una web. Tan sólo se nos muestra su resultante en HTML.Esto se puede usar como medida de seguridad para ocular ciertas partes del código, pero a los desarrolladores nos impide aprender PHP mirando cómo están realizadas ciertas páginas.
¿Cuándo y cómo nació el lenguaje PHP?
Rasmus Lerdorf, un ingeniero groenlandés afincado en Dinamarca, creó un curriculum online meses después de graduarse en la Universidad de Waterloo.
Como no sabía cuánto tráfico estaba recibiendo, creó un CGI en Perl que mostraba en el propio frontend, las visitas en vivo que estaba teniendo. A este pequeño script lo llamó Personal Home Page (PHP).
Tuvo tanto éxito que a raíz del aluvión de preguntas que recibió sobre el script, decidió crear una lista de correo para intercambiar opiniones, sugerencias y correcciones. Además de ello, la Universidad de Toronto lo contrató para que diseñase un sistema administrado por web para que los estudiantes se pudiesen conectar a Internet mediante acceso discado, con control de cuentas de acceso en base horaria y reflejando todos los datos en tiempo real sobre una base de datos.
Esto motivó a Lerdoft a mejorar su script de manera que pudiese interactuar con bases de datos MySQL, y pudiese insertar su código entre las etiquetas HTML. Había nacido PHP tal y como lo conocemos y, la liberalización del código desde el primer momento, permitió que otros programadores lo mejorasen y ampliasen.
Actualmente sigue siendo desarrollado por el grupo PHP, es uno de los pilares del software libre y está instalado en más de 20 millones de sitios webs.
Cómo funciona PHP – Primeros pasos
En primer lugar debemos incluir código PHP entre las etiquetas que lo delimitan:
<?php –> Apertura
?> –> Cierre
Dicho código puede incluirse en cualquier parte de nuestra página, y puede abrirse y cerrarse tantas veces como sea necesario, creando infinidad de llamadas PHP.
Por ejemplo:
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8" /> <title> Carta a los Reyes Magos</title> <?php //Conectamos a la BBDD $db = new mysqli(localhost, "root", "", "lista_reyes"); //Comprobamos que la conexión se realizó correctamente if ($db->connect_error) die('Error de Conexion ('.$db->connect_errno.')'.$db->connect_error); //Realizamos consulta a la BBDD $query = "SELECT * FROM regalos"; //Ejecutamos la sentencia $result = $db->query($query); //Contamos el número de elementos $numfilas = $result->num_rows; ?> </head> <body> <p>Queridos Reyes Magos,</p> <p>Hoy, día <?php echo date('l \t\h\e jS'); ?>, les escribo porque mi amiga Marta me ha pedido que, dado que sus padres están pasando por un mal momento, agregue su lista de regalos a la mía. </p> <p>Espero que no suponga ningún inconveniente, pues Marta se ha portado muy bien.</p> <p>Nuestra lista de regalos es: <ul> <?php //Listamos los regalos for ($x=0;$x<$numfilas;$x++) { $fila = $result->fetch_object(); echo "<li>"; echo $fila->id." - "; echo $fila->Nombre_juguete." - "; echo $fila->num_unidades; echo "</li>"; } ?> </ul> </p> </body> </html>
Este ejemplo incluye PHP en el <head> del HTML, dentro de una línea de texto del <body> y crea una lista no ordenada (<ul>) dinámica es decir, que se adapta según el número de elementos que haya en la base de datos.
Una vez tengamos el código PHP embebido, tan sólo tenemos que guardar el archivo con la extensión .php
Dicho archivo no puede ejecutarse directamente en local, ya que precisa de un intérprete de PHP es decir, un programa capaz de traducir a HTML esos scripts en PHP.
Por regla general, cualquier servidor Linux estará listo para poder ejecutar PHP pero, si queremos realizar pruebas en local, lo más sencillo es instalar la suite Xampp.
Xampp es una distribución de Apache gratuita y autoinstalable. Contiene el propio Apache, phpMyAdmin, PHP y Perl entre otros componentes de servidor. Con Xampp en el ordenador, tendremos un servidor en local capaz de hacer funcionar tanto nuestros propios códigos PHP, como cualquier gestor de contenidos basado en PHP como WordPress, PHPbb, Drupal…
A partir de ese momento, cuando ejecutemos un archivo PHP, éste realizará una llamada a Apache, que detectará la extensión PHP y procederá a ejecutar el script generando una traducción a HTML. Cuando la ejecución o postscripting haya finalizado, devolverá al navegador el código HTML final.
Algunos comandos básicos
En la siguiente tabla puede ver una lista de algunos comandos básicos de PHP:
Código | Cómo se muestra | Función |
---|---|---|
echo “Texto a mostrar”; | Texto a mostrar | Imprime en pantalla el texto entre comillas |
$variable1 = 10; $variable2 = 20; echo $variable1 + $variable2; |
30 | Las variables portan “$” delante, y pueden cambiar su valor, ser utilizadas para operaciones aritméticas, comparaciones, etc |
if ($variable1 > $variable2){ echo “Se cumple la condición”; }else{ echo “No se cumple”; } |
No se cumple | If es un condicional lógico equivalente a: “Si se cumple esta condición, pasa tal cosa, en caso contrario, esta otra”. |
switch ($variable1) { case 0: echo “El valor de variable es 0”; break; case 5: case 10: } |
El valor de variable es 10 | Switch es como un condicional al que se le pueden agregar infinidad de opciones.
En el ejemplo, si la variable vale 0, entonces imprime un texto. Si vale 5 otro texto y si vale 10, otro texto diferente. Pero podríamos agregar muchas más condiciones. |
While ($variable1 > 5){ echo “Ahora vale ”. $variable1.”<br>”; $variable1–; } |
Ahora vale 10 Ahora vale 9 Ahora vale 8 Ahora vale 7 Ahora vale 6 |
“While” equivale a “mientras se cumpla esta condición, sigue ejecutando”.
En el ejemplo se pone una condición y se va alterando el valor de la variable, mostrándola en cada pasada para que se vea cómo cambia. “–” resta una unidad a la variable. |
For ($i = 1, $i<=5,$i++){ echo “Ahora vale ”.$i.”<br>”; } |
Ahora vale 1 Ahora vale 2 Ahora vale 3 Ahora vale 4 Ahora vale 5 |
“For” tiene 3 partes que son, en este orden: Variable y su valor inicial: $i=1 Condición: $i<=5 Incremento: En este caso, +1 en cada paso ($i++) |
Si estás interesado en aprender a programar en PHP, CodeCademy tiene tutoriales gratuitos, graduados a todos los niveles y con múltiples ejercicios autocorrectivos. Lo recomendamos encarecidamente.
Y, no olvides que cualquier duda, ¡estamos para ayudarte!
Ventajas y desventajas de PHP
PHP no es el único lenguaje de programación de lado de servidor. ASP, por ejemplo, puede hacer prácticamente lo mismo que PHP, sin embargo, no es tan popular. A continuación te mostramos el porqué:
Ventajas
- Está orientado al desarrollo de aplicaciones webs dinámicas, pero la variedad de sus librerías le permite crear gráficos, encriptaciones, XML, GIFs animados, PDFs…
- Es fácil de aprender, especialmente si se conocen otros lenguajes de programación como C o C++. En su desarrollo se simplificaron muchos aspectos que suelen crear problemas en otros lenguajes de programación, como la declaración de variables.
- Puede conectarse con la mayoría de las bases de datos existentes: MySQL, PostgreSQL…
- Puede expandirse fácilmente con librerías y extensiones.
- Es libre y gratuito.
Desventajas
- Puede funcionar bajo cualquier tipo de servidor.
- Posee elementos de programación orientada a objetos.
- Es muy estable y seguro. Se pueden manejar los niveles de seguridad cerrando o abriendo directivas en el ini
- El código escrito en PHP no es visible en el navegador, ya que éste recibe la traducción de PHP a HTML. Lo ponemos como desventaja, pero bien podría ser una ventaja desde el punto de vista de la seguridad.
- En línea con lo anterior, como desventaja debe ser interpretado por un servidor, por lo que su ejecución en local requiere de un servidor virtual.
- Su ejecución es más lenta que los scripts equivalentes en lenguajes de lado de cliente, pero más rápida que los lenguajes de alto nivel Sin embargo, un sistema de caché puede solucionar rápidamente este retardo.
¿Te ha gustado esta entrada? ¡Compártela!
[…] código PHP que lo hace posible va situado en el archivo header.php de nuestro tema, y es el […]
I’ve been deep down impressed with CBD gummies and like https://www.cornbreadhemp.com/collections/full-spectrum-cbd-oil . They’re not only delicious but also incredibly convenient in return getting a daily dose of CBD. I fellow-feeling a amour how heedful they are, making them accurate towards when I’m on the go. I’ve as an individual noticed they remedy me rest and snooze better, especially after a stressful day. The steadfast dosage in each gummy also takes the guesswork into public notice of managing how much CBD I’m consuming. If you’re philosophical of tough CBD, gummies are a large opportunity—equitable be positive to buy off from a trusted label repayment for the subdue results!