Tabla de contenido
Lenguajes y tecnologías de servidor
El servidor web:
– Es un programa cuya última misión es servir datos en forma de documentos HTML codificados en este lenguaje.
– La configuración de este componente de software vendrá determinada por la utilización de un lenguaje u otro.
– El intercambio de datos entre un cliente y un servidor web se hace por medio de un protocolo determinado, HTTP.
La secuencia de comunicación entre el cliente y el servidor se puede dividir en cinco pasos:
- El navegador solicita, como cliente DNS, la traducción de una URL a una IP.
- Se realiza la petición HTTP al servidor web que tenga la IP obtenida.
- El servidor procesa la solicitud realizada por el cliente.
- Tras ejecutar el código asociado al recurso solicitado en la URL, el servidor responde al cliente enviando el código HTML de la página.
- El navegador del cliente, cuando recibe el código, lo interpreta y lo muestra por pantalla al usuario.
Existen diferentes tipos de servidores para procesar los datos, los podríamos diferenciar como:
- Servidores basados en procesos: Su funcionamiento se basa en la obtención de un paralelismo de ejecución mediante la duplicación del proceso de ejecución.
- Servidores basados en hilos: La creación de un hilo por parte de un proceso servido no es tan costosa como la duplicación de un proceso completo. Los hilos de ejecución creados comparten el mismo espacio de memoria reduciendo el consumo de memoria del servidor web de forma drástica.
- Servidores dirigidos por eventos: Utilizan sockets (espacios de memoria para la comunicación entre dos aplicaciones que permiten que un proceso intercambie información con otro proceso estando los dos en distintas máquina, en este caso cliente y servidor). Estos servidores están basados en sockets no bloqueantes. La lectura y escritura sobre sockets se realizan de manera asíncrona (no es necesario esperar la respuesta por ninguna de las partes) y bidireccional (que se realiza en ambas direcciones). Existe un solo proceso y un solo hilo, dede el cual se atienden todas las conexiones, gestionadas por un conjunto de sockets.
- Servidores implementados en el núcleo del sistema (kernel): Situan el procesamiento de cada una de las ejecuciones del servidor web en un espacio de trabajo perteneciente al sistema operativo (kernel) y no en un nivel de usuario (sobre el sistema operativo).
Algunos ejemplos de servidores web podrían ser: Apache Server (es un servidor http diseñado para ser utilizado en múltiples plataformas), Microsoft IIS (el servidor de Microsoft), Sun Java System Web Server (servidor de alto rendimiento, escalabilidad masiva), Ngnix (servidor http), Lighttp (es un servidor web especializado en respuestas rápidas).
Obtención del código enviado al cliente
Como características del lenguaje PHP (Hypertext Preprocessor) prodriamos resaltar:
– Que es un lenguaje de scripting (es un lenguaje NO compilado, es un lenguaje interpretado). Se basa en la utilización de etiquetas y los códigos no son demasiado largos, en general.
– En un lenguaje de propósito general.
– Está especialmente diseñado para el desarrollo de aplicaciones web.
– Puede ser embebido (intercalado) en código HTML sin problema.
– Es débilmente tipado (no es necesario definir el tipo de dato que guardará una variable, PHP lo interpreta ya por el usuario … por ejemplo).
– Es un lenguaje KeySensitive (diferencia entre mayúsculas y minúsculas).
Inserción de código en páginas web
Etiquetas para la inserción de código
- Cada lenguaje que se puede utilizar para insertar código dentro de una página web utiliza una serie de etiquetas para delimitar los fragmentos de código que han de ser procesados por el servidor web.
- El componente del servidor encargado de procesar el código ignorará el código HTML que se encuentra fuera de dichas etiquetas.
- Para insertar el código PHP se usará generalmente las etiquetas <?php para la apertura del código PHP y ?> para el cierre de dicho código. Existe la posibilidad de utilizar una simplificación de estas etiquetas (<?= para abrir el código PHP y ?> para cerrar dicho código), esta utilización dependerá de la configuración del servidor, en el archivo php.ini. La opción short_tags tendrá que estar en ON.
Las características básicas de los lenguajes de scripting de código embebido serían las siguientes:
– Todo script comienza y termina con una etiqueta de inicio y otra de fin.
– Podemos configurar otros estilos de etiquetas intercalados con las etiquetas de este lenguaje.
– Los espacios en blanco que escribamos dentro del código embebido no tienen ningún efecto.
– El código de servidor embebido en páginas HTML está formado por un conjunto de sentencias que deben estar claramente separadas, para evitar confusiones.
– Los scripts embebidos pueden situarse en cualquier parte del recurso web ejecutado.
– El número de scripts que podemos tener dentro de un fichero HTML es indefinido.
– Cuando se ejecuta un código embebido, el script entero se sustituye por el resultado de dicha ejecución, incluídas las etiquetas de inicio y fin.
– En cuanto a los comentarios en el código PHP, y en cualquier otro código se recomienda su uso, ya que hará mucho más legible nuestro código. En el lenguaje PHP existen tres tipos de comentarios;
// Con esto se comentaría una línea. # Con la almohadilla también se comentará una sola línea. /* se pueden comentar múltiples líneas*/
La inclusión de código PHP en las páginas HTML
La instrucción echo sirve tanto para cadenas de caracteres como para imprimir variables.
echo "ejemplo de cadena";
El resultado de usar print sería el mismo que usando echo.
print "ejemplo de impresión de cadena";
También se pueden imprimir número directamente.
echo 12324;
Y mostrar el contenido de una variable:
echo $variableResultado; print $variableResultado;
La diferencia entre echo y print es que la sentencia echo puede imprimir más de un argumento, concatenando dichos argumentos.
Otra forma de mostrar el contenido de una variable es utilizando el símbolo igual junto a la etiqueta de inicio.
<?=$variableResultado; ?>
Las sentencias echo y print son funciones y pueden usarse con los parámetros entre paréntesis. Aun que echo puede imprimir en pantalla sin necesidad de los paréntesis, mientras que print siempre debe llevar estos paréntesis.
echo ("mensaje");
Cuando utilizamos paréntesis con echo y print es necesario tener en cuenta el número máximo de parámetros admitidos por cada una de estas sentencias. En caso de print, el máximo es 1.
Las cadenas de caracteres pueden ser creadas tanto con comillas simples (‘cadena’) como con comillas dobles («cadena»). Si queremos mostrar comillas simples o dobles como parte de la salida, lo que debemos hacer es utilizar comillas dobles o simples como delimitadores. La impresión de caracteres reservados se hace indicándole al intérprete de PHP que el carácter a continuación de la barra invertida () es un carácter que debe imprimirse sin ser interpretado.
Variables
Como definición de variable podría usarse; que es un almacén temporal de datos que permite gestionar los datos utilizados por la aplicación web durante el flujo de ejecución de una página determinada. Se identifican por el símbolo dólar ($) seguido del nombre de la variable.
En PHP, las variables no necesitan ser declaradas explícitamente. Esta es una de la razones por las que se dice que PHP es un lenguaje débilmente tipado.
Las variables no tienen ningún tipo definido hasta que no se les asigna un valor.
Como reglas a la hora de nombrar las variables podemos destacar;
– El nombre debe comenzar por una letra o con un guión bajo (_) después del símbolo del dolar por el cual comienzan las variables.
– La nomenclatura únicamente puede contener caracteres alfanuméricos y guiones bajos (a-z. A-Z, 0-9 y _).
– El nombre de una variable no debe contener espacios en blanco.
– PHP es case-sensitive, las variables $Variable, $variable y $VARIABLE son variables completamente diferentes.
Los tipos de datos y variables
- Tipos escalares: boolean, integer, float y string.
- Los tipos compuestos: array y object.
- Tipos especiales: NULL y resource.
- Pseudo-tipos: mixed, number y callback.
Tipos de datos y variables:
- Operadores: $var = (($var – 3 ) * 5) / 4;
Cuando se realizan operaciones y existen paréntesis, lo primero en ejecutarse son las operaciones encerradas entre paréntesis.
- Concatenación: $var= «cadena».»unida»;
Varias formas de añadir 1 a la variable $var;
- La variable $var = $var + 1;
- En $var += 1;
- $var++;
Varias formas de multiplicar o de dividir;
$var = $var * 2; -> $var *= 2; $var = $var / 2; -> $var /= 2;
Se pueden realizar conversiones entre tipos de datos de las siguientes formas;
Con funciones (algunas);
- string strval (mixed variable) -> transforma a string.
- integer intval (mixed variable) -> transformar a integer.
- float floatval (mixed variable) -> transofrma a float.
De manera genérica:
- settype (mixed variable, string type).
- Parámetro «variable»: valores de tipo array, boolean, float, integer, object o string.
- Parámetro «type»: cadena de caracteres que indica el tipo al que queremos transforma el parámetro «variable».
Tabla de conversiones entre tipos de datos:
Sentencia | Resultado |
(int) $var | Conversión a tipo integer |
(integer) $var | |
(bool) $var | Conversión a tipo boolean |
(boolean) $var | |
(float) $var | Conversión a tipo float |
(double) $var | |
(real) $var | |
(string) $var | Conversión a tipo string |
(array) $var | Conversión a tipo array |
(object) $var | Conversión a tipo object |
La siguiente es una tabla de ejemplos de conversiones entre tipos de datos:
Valor de $var | (int) $var | (bool) $var | (string) $var | (float) $var |
null | 0 | false | «» | 0 |
true | 1 | true | «1» | 1 |
false | 0 | false | «» | 0 |
0 | 0 | false | «0» | 0 |
3.8 | 3 | true | «3.8» | 3.8 |
«0» | 0 | false | «0» | 0 |
«10» | 10 | true | «10» | 10 |
«6 metros» | 6 | true | «6 metros» | 6 |
«hola» | 0 | true | «hola» | 0 |
La conversión automática de tipos de datos
Cuando combinamos en una misma expresión dos variables que inicialmente tienen tipos diferentes o cuando pasamos una variable como argumento a una función que espera un tipo de datos diferente.
- $var se convierte a tipo integer con valor 35: $var = «20» + 15;
- $var se convierte a string con valor «20 años»: $var = 20 . » años»;
- $var se convierte a tipo integer con valor 20: $var = 20 + » años»;
- $var se convierte a tipo integer con valor 42: $var = 40 + «2 razonez»;
Una variable puede tener diferentes estados, como pueden ser:
- Estado indeterminado (no teniendo un valor asignado) e incluso puede no haber sido definida (su estado sería indefinido).
Funciones que comprueban el estado de una variable:
- boolean isset (mixed var) -> comprueba si a una variable se le ha asignado un valor no nulo.
- boolen empty (mixed var) -> comprueba si esa variable tiene un valor.
También existe una manera de pasar una variable a estado «indefinido». Esto se consigue con unset(). Unset() detruye las variables que se especifiquen dentro de los paréntesis.
A continuación se muestra una tabla con los posibles estados de una variable:
Contenido de $var | isset ($var) | empty($var) | (bool) $var |
$var = null; | false | true | false |
$var = 0; | true | true | false |
$var = true; | true | false | true |
$var = false; | true | true | false |
$var = «0»; | true | true | false |
$var = «»; | true | true | false |
$var = «foo»; | true | false | true |
$var = array(); | true | true | false |
unset ($var); | false | true | false |
Una variable puede tener diferentes ámbitos. El ámbito de una variable es el contexto dentro del que la variable está definida, es decir, la zona del programa en la que puede ser accedida o modificada, de ser posible, dicha variable.
Una variable de ámbito local, sería la variable interna a una función única y que puede ser utilizada exclusivamente dentro de dicha función.
function duplicar ($var){ //en este caso $temp es una variable local que solo funciona dentro de la función duplicar $temp = $var * 2; } $variable = 3; duplicar ($variable); echo "el valor de la variable $temp es: $temp";
Las variables de ámbito global se definen utilizando «global» antes del nombre de la variable. Con ello declaramos que la variable que usaremos dentro de una función es la misma que la variable que utilicemos fuera de esa función.
function duplicar ($var){ //en este caso $temp es una variable local que solo funciona dentro de la función duplicar global $temp = $var * 2; } $variable = 3; duplicar ($variable); echo "el valor de la variable $temp es: 6";
La utilización de demasiadas variables globales sin control puede dar como resultado un código difícil de mantener y propenso a dar errores, por eso se aconseja usarlas con control.