lunes, 14 de diciembre de 2015

PHP





PHP es el acrónimo de Hypertext Preporcessor. Es un lenguaje de código abierto (¿qué significa código abierto?) que se usa especialmente para desarrollar webs, y que tiene la ventaja de que puede ser incrustado en html (que es un lenguaje de marcado que sirve para elaborar páginas web).
La gran diferencia entre php y otros lenguajes es que php se ejecuta del lado del servidor (es decir en el servidor web justo antes de que se envíe la página al cliente), por lo que el cliente sólo recibe una página con el código html, que es compatible con todos los navegadores.
Se trata de un lenguaje multiplataforma, con gran conectividad (para las bases de datos),de fácil acceso, permite las técnicas de programación orientadas a objetos, tiene una biblioteca nativa incluida), tiene estabilidad, flexibilidad y velocidad.


A través de www.php.net  y gratuitamente podemos descargar un módulo que hace que nuestro servidor entienda los scripts de php, por lo que se puede trabajar con cualquier sistema.
Los sitios php son fáciles de mantener y mejorar.
Php se usa para:
Crear páginas web dinámicas, casi siempre combinadas con MySQL (aunque también con otros).
Hablar a bases de datos.
Enviar cookies.
Enviar formularios de datos.
Programación en consola.
Creación de aplicaciones gráficas con independencia del navegador.

COMENZAMOS


Vamos a nuestro servidor, e iniciamos como root. Accedemos a la carpeta www, para ello pondremos:
cd /var/www


 Es importante que la extensión sea php, ya que todos los ficheros con esta extensión serán tratados por PHP.

Un dato a considerar es que php es susceptible de mayúsculas y minúsculas.

Creamos a continuación el primer ejercicio al que llamaremos 1.php.
nano 1.php

Para poder agregar php:
<?php (abre)
?> (cierra)
Todo lo que queda fuera de estas etiquetas va a ser ignorado, por eso el texto se puede combinar con html.


(Para facilitar la lectura, ahora sólo remarcaremos en verde o púrpura aquello que sea especialmente importante)

Sería importante tener en cuenta la diferencia que existe entre una ruta relativa (desde donde yo estoy dentro del sistema)y una ruta absoluta (como pista, si comienta con / significaría que es absoluta).

Vamos a iniciar ahora el cliente, elegiremos la usuaria administradora con la clave "admin02".


Ahora accedemos a iceweaser:


En la barra ponemos la IP del servidor y el nombre de nuestro ejercicio:

192.168.100./ejer1.php


Y nos da como resultado:




Lo que quiere decir, que no lo ha encontrado. Tenemos un ejercicio 1.php, pero no tenemos nada que pueda interpretar.

Volvemos al servidor:
Vamos a hacer el segundo ejercicio. Esta vez vamos a insertar php dentro del código de html:
Abrimos el editor de textos con nuestro ejer2.php:
nano ejer2.php


Ponemos dentro de html el código de php:



Volvemos al cliente:

En la barra ponemos la IP del servidor y el nombre de nuestro ejercicio:

192.168.100./ejer1.php

Y nos da como resultado:


Este código está dentro de html y además tenemos un echo (que sirve para mostrar por pantalla) por lo tanto ejer2.php sí debería estar mostrando el contenido.

Vamos a ver qué tenemos dentro de la carpeta /www/, lo haremos poniendo ls.


Y nos indica lo que contiene la carpeta www:


Si observamos bien la imagen, descubrimos que tenemos una carpeta más que se llama html.
Si nuestra máquina es wheezy, tendremos que guardar los archivos .php en /var/www.
Si nuestra máquina es jessie, tendremos que guardar los archivos .php en /var/www/html




Así es que ponemos el ejer2.php dentro de la carpeta /html.


Ahora comprobamos en el cliente:


En el cliente sólo vemos el código html, nunca el php.

Comentarios:

Para realizar comentarios de una sola línea usamos //o #.
Si lo que queremos comentar son varias líneas, entonces lo que necesitamos es: /*(apertura)*/(cierre).
Supongamos que escribimos:


Nos mostraría:


Porque hemos puesto los comentarios dentro de las etiquetas de html, pero no de php.  Dentro de html: <! esto es un comentario>. Es importante cuando se incrusta el código php dentro de html, tener muy claros los límites de uno y otro, y conocer ambos lenguajes. 
Probemos ahora poniendo los comentarios dentro de php:


Y en el cliente vemos el resultado:


Ahora el mismo ejercicio, pero poniendo en negrita: Hola mundo. Para ello ponemos las etiquetas entre  comillas("<b>""</b>", y las concatenamos con un punto (.):


Vemos el efecto en el cliente:




Variable:

Una variable es como un almacén. 
Para representarla, empezamos con el símbolo $ seguido del nombre de la variable que ha de empezar con letra, o carácter subrayado, después ya pueden ir números, letras o caracteres subrayados, y no puede contener acentos. Distingue entre mayúsculas y minúsculas. 
Hay un listado de variables reservadas que no se pueden utilizar.

Creamos en un ejercicio unas variables para ver cómo funcionan:


En el cliente:





Disponemos de distintos tipos de variables, pero los cuatro básicos son:

  • boolean: Pueden ser true o false, o dicho en castellano: verdaderos o falsos. Se usan en condicionales y no distinguen entre mayúsculas y minúsculas.
  • integer: Son números sin decimales, positivos o negativos.
  • float: Son números decimales. Se especifican con ., nunca con ´, es decir: 1.5=bien 1´5=mal.
  • string: Son cadenas de caracteres que sólo soporta ASCII. Se pueden definir con comillas simples' o dobles", pero recomendamos las comillas dobles, ya que estas admiten los caracteres especiales.
Ejercicios de integer:



Ahora probaremos un ejercicio con float:



Y un ejercicio de cadena de caracteres:
Si quisiéramos poner una comilla simple dentro de un texto, tendremos que recurrir a la \'.


Comprobamos:


Ahora un ejercicio que incluya los cuatro tipos:


Comprobamos:


El entrecomillado doble funciona igual que el simple. Es decir, si queremos que nos muestre una comilla doble" dentro de las comillas doble "esto son"comillas"", tenemos que usar \". Como ya dijimos recomendamos estar, puesto que con ellas se pueden usar los caracteres especiales:
\n= nueva línea
\r=retorno de carro
\t= tabulador

Mostramos:


Es importante entender que el ámbito de una variable es aquel contexto donde la variable está definida, o dicho de otro modo: es el espacio en el que la variable existe, tiene sentido y se la entiende, fuera deja de existir, porque no tiene sentido.
Una variable local es aquella que tiene el ámbito restringido a la función en la que se ha declarado. 
Fuera de la sección en la que se declara no tiene sentido.

     * include (es una variable local). Se usa para incluir otro archivo: include 'funciones.php', es decir llama a archivos externos que sean de extensión .php
Comprobamos su uso:
Creamos un php nuevo, y le ponemos sólo php, sin html.


Ahora creamos otro archivo que incluya html y los anteriores:


Mostramos:



Recordamos ejer2.php, ejer3.php y ejer4.php:




Una variable global es la que se define fuera de cualquier función, por lo que cualquier función tiene acceso a ella.
Php proporciona una serie de variables predefinidas para script, son:
  • superglobals: son variables internas que están disponibles en todos los ámbitos:
  1. $GLOBALS: son todas las variables que hay disponibles en el ámbito global, es decir está disponible en cualquier parte del script.
  2. $_SERVER: informa del entorno del servidor y de la ejecución.
  3. $_GET: variable HTTP GET, se envía en la URL.
  4. $_POST: variable POST de HTTP, se envía mediante un formulario.
  5. $_FILES: variable para la carga de archivos HTTP
  6. $_COOKIE: sirve para generar y guardar cookies en el navegador del usuario
  7. $_SESSION: variable que interviene en la sesión
  8. $_REQUEST: array asociativo que contiene $_GET, $_POST y $_COOKIE
  9. $_ENV: variable del entorno.

Function:

Funciones, se diría en castellano. Son un grupo de instrucciones que se ejecutan cuando se les llama desde otra función, es decir, un subprograma que va a resolver una tarea concreta. Se puede ejecutar en cualquier parte del código. O dicho de un modo más sencillo es un conjunto de código que podemos ejecutar las veces que queramos, sin tener que repetir todo el código.
Sintaxis:

function test(){ lo que se va a repetir cada vez que se llama a la función.} (no lleva;)
(para llamar a la función:) test();

El ámbito de las variables de por sí no incluye las funciones, en el caso de que se quiera incluir:
                                                <php?
                                                         $a="hola";
                                                         function test()´{ globa$a;
                                                         echo $a;
                                                         }
                                                         test();
                                                  ?>
Las variables dentro de la función son variables locales(es decir, sólo valdrían dentro de la función).


Muestra:


Otra forma sería indicar directamente a la función que lo mostrase, por lo tanto al invocar a la función directamente lo mostrará.


Muestra:


P(ero, todo esto lo veremos en profundidad más adelante)

Constante:

Una constante es un identificador que expresa un valor simple, este valor no va a cambiar durante el tiempo que se ejecute el script. Es decir, que mientras que dure el programa no va a variar, sólo es un nombre que expresa un valor simple. 

Para definirla:
                                         define("nombre_constante","valor_constante");
Para mostrarla:
                                         echo nombre_constante;


Muestra:




Es importante recordar que el nombre de una constante no puede empezar por un número.

Expresiones:

Una expresión se pude definir como cualquier cosa que tiene un valor.

$a=$b=5;

Empieza a evaluar de derecha a izquierda:
$b=5 y $a=5



ESTRUCTURAS DE CONTROL:


Las estructuras de control de flujo son instrucciones que van a ordenar ejecutar unas u otras instrucciones en función de los datos.
Tienen un único punto de entrada y uno de salida, y están compuestas por sentencias u otras estructuras de control.
Son varias:



ESTRUCTURA DE CONTROL:

if=si...:

Es un condicional, y las consecuencias van a depender de si algo se cumple o no se cumple:
Esas consecuencias son las sentencias, y pueden ser verdaderas, o falsas.  Cualquier estructura de control que sólo tenga una sentencia no va a necesitar llave, pero siempre se recomienda ponerla.



Veamos su uso:


Muestra:


Vamos a probar la otra posibilidad:


Muestra:


Probemos otro ejercicio más complejo:


Muestra:


La otra posibilidad:


Mostramos:



Otro ejercicio:


Muestra:


Las sentencias if pueden ser anidadas indefinidamente, else sólo se va a ejecutar en caso de que if se evalúe como falso y si hubiera alguna expresión elseif.

Ejercicios:



Resultado:


Otra opción:





Otro ejercicio:


Muestra:




Lógica informática:



Ejercicio:



Muestra:


Otra opción:


Muestra:



Formularios:

Php ayuda a manejar los formularios de forma sencilla, es una de sus aplicaciones más frecuentes. Puesto que ayuda a procesar la información que nos envía el usuario o la usuaria.
Cuando diseñamos un formulario en html hay que indicarle qué pagina php va a ser la que procese el formulario y el método por el que le vamos a enviar la información a la página.

Eso lo haremos con las etiquetas:
<form action="resultados.php" method=$_GET></form> 
Veamos un ejemplo y su efecto:
Formulario:


Página php que va a procesar los datos:



Introducimos los datos:


Resutado una vez que procesamos los datos:


Otra opción:


Resultado:




ESTRUCTURA DE CONTROL:

while=mientras...:

Si la utilizamos, mientras que la expresión se cumpla, se va a ejecutar.

Ejercicio:


Código de ejecución:



Muestra:


Introducimos el número que queramos:


Muestra:




ESTRUCTURA DE CONTROL:

 do while=mientras...:

Esta estructura es igual que while, pero la condición se va a comprobar al final. Es decir, al menos una vez va a entrar en el bucle.



ESTRUCTURA DE CONTROL:

 for=para:

La diferencia con while es que mientras que con while no sabemos el número de veces que va a llegar a ajecutarse, ccon for sí lo sabemos.


Ejercicio:

Código de ejecución


Tabla que vamos a mostrar:


Tabla mostrada:



Con opciones, se hace poniendo radio button:


Trabajamos los resultados:


Muestra:


Elegimos una opción:


Muestra:


ESTRUCTURA DE CONTROL:

 switch=cambia:

Vamos a ejecutar una u otra sentencia en función del valor de la variable.

Ejercicio:


Muestra:


Resultado de la calculadora:


Ponemos los datos que queremos que calcule:


Y el resultado es:



Veamos ejercicios variados para practicar:


Ejercicio:


Muestra:


Rellenamos:


Obtenemos:


Otro ejercicio:



Cumplimentamos el formulario:


Y obtenemos:


Veamos otra posibilidad indicando un número que no está entre el 1 y el 12:


Observamos el resultado obtenido:


Otro ejercicio para practicar:



Trabajamos el resultado:



Y obtenemos:



Probemos otro tipo de ejercicio:






Otro ejercicio:



Muestra:


Ahora trabajamos con resul35.php:






Obtenemos:






Funciones:


Como ya vimos una pequeña introducción, las funciones son un grupo de instrucciones que se ejecutan cada vez que se les llama (un subprograma) y se les puede llamar tantas veces como se quiera.
Recordamos la sintaxis:

function test(){ lo que se va a repetir cada vez que se llama a la función.} (no lleva;)
(para llamar a la función:) test();

Hay funciones que las define la persona que programa, es decir el usuario o la usuaria, y otras que vienen predefinidas.

FUNCIONES PREDEFINIDAS:

Empty():

Empty() indica si la variable está vacía o si su valor es false (o falso).
Mejor lo veremos en un ejemplo:


Muestra:


Probamos la otra opción:


Muestra:


isset():

isset(): devuelve verdadero si la variable fue inicializada con algún valor. Si no es un valor nulo.



FUNCIONES QUE DEVUELVEN EL TIPO DE VARIABLE:


  • is array();
  • is_bool();
  • is_float();
  • is_integer();
  • is_stirng();
  • is_null();
  • gettype(); 
Un ejemplo:


Y el resultado:


OTROS TIPOS DE VARIABLES PREDEFINIDAS:

date("H"): devuelve la hora del ordenador en el que se ejecuta.
phpinfo(): devuelve los detalles de la configuración.
phpversion(): indica qué versión de php se está utilizando.
strto time(): transforma una fecha en un timestamp de UNIX

(Un timestamp es un registro de tiempo, o sello de tiempo, es decir una secuencia de caracteres que especifican la hora y fecha (o alguna de ellas) en la/s que ocurrió un evento concreto.)

FUNCIONES DEFINIDAS POR LA PERSONA QUE PROGRAMA (USUARIO-A):



Vamos a practicar con unos ejercicios e iremos explicando:


Bajo FUNCIONES  hemos definido la función y lo que hará y bajo CÓDIGO PHP ejecutamos el código php, en este caso, sólo con nombrar o llamar a la función, obtenemos el resultado:


Ahora vamos a ver cómo usar varias veces la misma función, usando un bucle (for):



Nos va a mostrar:


Debemos observar que nos ha impreso por pantalla todas las funciones seguidas, pese a haber puesto un echo con un salto de línea "<br>", es porque está fuera del bucle, por lo que primero imprime todo el bucle y después hace un salto de línea. Comprobemos ahora metiendo el salto de línea impreso dentro del bucle:


Ahora nos lo imprime que los saltos de línea, además nos lo imprime 8 veces en lugar de 7, porque hemos inicializado el bucle en 0, por eso imprime una vez más:


Vamos a hacer el mismo ejercicio, con los saltos de línea dentro del bucle y para que ejecute la función 7 veces y no 8:


Y por fin el resultado que esperábamos obtener:


Ámbito de las variables de la función:


Las variables que se definen dentro de una función, dejan de existir cuando la función ha terminado. Como ya dijimos, a esto de le llama tener ámbito local.

Lo vamos a ver con un ejercicio:


Cuando sale del ámbito de la función, deja de tener valor, porque 
 ya no existe:




Ahora un ejercicio distinto:


El resultado:


Ahora la función:


Y el resultado final:





Otro tipo de funciones, lo que hacen es trabajar con los datos que le pasamos dentro de los paréntesis, para devolver un resultado, ese resultado lo devuelve gracias a:

return $variable;

Se va a modificar una variable, ya que la trabaja dentro de la función.

Hay veces que no interesa hacer funciones, si la función sólo lleva una lína, es conveniente hacerlo directamente en código, pues ocupa menos. Si se trata de una función con varias líneas de código, entonces sí nos interesa hacerla, dado que sólo con invocarla es como si pusiéramos todas esas líneas del código:




Y nos ofrece la pantalla en la que introducir los números:


Ahora trabajamos con los datos que se nos pasan:


Como no lo podemos ver bien, vamos a ir poniendo el código en partes y explicando lo que hacemos en cada parte:

En esta porción de código, ponemos el título, abrimos el código html y php, y con comentarios, especificamos lo que viene a continuación, que son las funciones:
Empezamos creando una función que nos hará diferenciar si el caracter introducido es un operador, para ello encadenamos varios if, que especifican cuando es verdadero (cuando le pasamos un operador) y cuando es falso (cuando le pasamos cualquier otro caracter).
Función sumar, indica que hay que sumar los dos números que le pasan.

Función restar, indica que hay que restar los dos números que le pasan.
Función multiplicar, indica que hay que multiplicar los dos números que le pasan.
Función dividir, indica que hay que dividir el primer número que se le pasa entre el segundo número, siempre y cuando el segundo número (divisor), no sea cero (0), en cuyo caso nos dará infinito; si el primer número (dividendo) fuese 0, lógicamente nos dará 0, ya que si no hay nada para repartir, a nada tocan.


Comenzamos a definir el código php, y por eso lo definimos entre comentarios.
Declaramos las variables con las que vamos a trabajar, que nos llegan desde el formulario. 
Arrancamos con un if que va a concretar que hacer en el caso de que los datos que nos pasan, sean dos números y un operador. Como el operador que nos van a pasar puede ser "+", "-", "*" o "/", ponemos un switch, para que aplique la función que corresponda según el operador que se pase.  Entonces, nos aparecerá un mensaje indicando qué resultado dará la operación. Y si no es un operador y dos números los datos que nos hacen llegar desde el formulario, nos va a indicar que "algo falla".

Veamos un ejemplo de todas las posibilidades:



















Vamos a realizar unos ejercicios de repaso:

 Repasamos las Variables:














Otro ejercicio de variables, ahora vamos a concatenarlas:






Ahora repasamos las estructuras de control:
Para realizar este ejercicio debemos saber previamente qué es un número primo y cómo llegamos a averiguar si un número lo es:
Aclaramos algunos conceptos:




Un número primo es aquel que es divisible sólo entre él mismo y entre uno. 
Por eso, si queremos saber si un número es primo, lo dividiremos entre los números primos, por orden, de manera creciente, hasta que la división sea exacta, que nos indicaría que no es primo, o que el cociente sea menor que el divisor, en cuyo caso sería primo.














Otro ejercicio de estructuras de control:





Seguimos practicando el envío de datos entre páginas:








Otro ejercicio:










No hay comentarios:

Publicar un comentario