PHP, acrónimo recursivo en inglés de PHP: Hypertext Preprocessor (preprocesador de hipertexto), es un lenguaje de programación de propósito general de código del lado del servidor originalmente diseñado para el preprocesado de texto plano en UTF-8. Posteriormente se aplicó al desarrollo web de contenido dinámico, dando un paso evolutivo en el concepto de aplicación en línea, por su carácter de servicio.
Su implementación en los documentos HTML era aparentemente muy sencilla. Hay que decir, que, PHP no genera HTML, sino que ofrece una salida de texto con codificación UTF-8 compatible con los documentos HTML. El programador puede dotar a la salida de los tag's propios del HTML y los exploradores más comunes para navegar por internet, reconocerán muy rápidamente el formato UTF-8 y lo adaptarán ofreciendo una salida entendible.
Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en un documento HTML en lugar de llamar a un archivo externo que procese los datos. El código es interpretado por un servidor web con un módulo de procesador de PHP que genera el texto plano en formato UTF-8, ampliamente reconocido por el estándar HTML, dando como resultado, en los exploradores, una salida al usuario perfectamente entendible.
La sintaxis de PHP, se fundamenta en los principios de programación de C.
Ejemplos de código¿
Programa Hola mundo con PHP embebido en código HTML:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Ejemplo básico PHP</title>
</head>
<body>
<?php
echo 'Hola mundo';
?>
</body>
</html>
Programa Hola mundo con PHP en forma de app monolítica:
<?php
// Area de cabeceras, constantes e includes (inicialización de la aplicación)
// Encabezado solo para demostración, no es necesario
header('Content-Type: text/html; charset=UTF-8');
$respuesta = '';
// Lógica de la aplicación, como obtener usuario de la sesión, contenido, etc.
// Este código podría venir de una plantilla externa para una fácil reutilización
$respuesta .= '<!DOCTYPE html>';
$respuesta .= '<html lang="es">';
$respuesta .= '';
$respuesta .= '<head>';
$respuesta .= ' <meta charset="UTF-8" />';
$respuesta .= ' <meta name="viewport" content="width=device-width, initial-scale=1.0" />';
$respuesta .= ' <title>Ejemplo básico de PHP</title>';
$respuesta .= '</head>';
$respuesta .= '';
$respuesta .= '<body>';
$respuesta .= ' <h1>Hola mundo!</h1>';
$respuesta .= '</body>';
$respuesta .= '';
$respuesta .= '</html>';
// Envía respuesta
echo $respuesta;
// Notar que no se cierra la "etiqueta" <?php. PHP-FIG recomienda esta práctica en
// archivos que contienen solo código PHP para así no enviar contenido HTML de
// manera accidental.
Programa Hola mundo con PHP respondiendo en formato JSON:
<?php
// Archivo respuesta_json.php
// Le comunica al navegador que la respuesta será JSON
header('Content-Type: application/json; charset=UTF-8');
$respuesta = [
'mensaje' => 'Hola mundo!'
];
echo json_encode($respuesta);
// No se cierra la "etiqueta" <?php ya que el archivo contiene sólo código PHP
Lado del cliente que realizará petición al archivo PHP:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Ejemplo de respuesta en formato JSON desde PHP</title>
</head>
<body>
<div>
<h2>Respuesta en texto plano</h2>
<pre><code id="respuesta-plana"></code></pre>
</div>
<div>
<h2>Respuesta procesada (campo "mensaje" de la respuesta JSON)</h2>
<pre><code id="respuesta-procesada"></code></pre>
</div>
<script>
document.addEventListener('DOMContentLoaded', () => {
const contenedorRespuestaPlana = document.querySelector('#respuesta-plana');
const contenedorRespuestaProcesada = document.querySelector('#respuesta-procesada');
// Realiza petición asíncrona al archivo de php
fetch('respuesta_json.php')
.then(respuesta => respuesta.json()) // Transforma la respuesta a un objeto JSON
.then(respuestaJson => {
// respuestaJson es un objeto con el formato { mensaje: "Hola mundo!" }
contenedorRespuestaPlana.innerHTML = JSON.stringify(respuestaJson);
contenedorRespuestaProcesada.innerHTML = respuestaJson.mensaje;
});
// manejar errores con .catch()
});
</script>
</body>
</html>
No hay comentarios:
Publicar un comentario