Php Ya

Una iniciativa de Bloggeandolo y Revolution Team PHP para todos Maurizzio Peñalba Este curso se distribuye bajo una

Views 132 Downloads 3 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Una iniciativa de Bloggeandolo y Revolution Team

PHP para todos

Maurizzio Peñalba

Este curso se distribuye bajo una licencia Creative Commons. Y Usted es libre de: Copiar, distribuir y comunicar públicamente la obra

Hacer obras derivadas Bajo las condiciones siguientes: Reconocimiento. Debe reconocer y dar crédito al autor original (Maurizzio Peñalba Samayoa)

Introducción PHP (acrónimo de "PHP: Hypertext Preprocessor") es un lenguaje interpretado de alto nivel embebido en páginas HTML y ejecutado en el servidor. Es decir, es un lenguaje de programación que no requiere ser compilado. Actualmente, muchos de los sitios que conocemos están desarrollados en PHP, aunque claro, nosotros no vemos la ejecución del programa sino únicamente el resultado de su ejecución, dicha comunicación se realiza usualmente a través del lenguaje HTML. Por lo que es un requisito para llevar este curso el conocer al menos los fundamentos básicos de la sintaxis HTML. Cuando nosotros tipeamos una dirección en nuestro explorador, por ejemplo cuando entramos al sitio http://bloggeandolo.blogspot.com estamos enviando una petición al servidor. Dicho servidor reconoce que la petición es una página con extensión php y solicita al intérprete que ejecute el código de la misma. El resultado de dicha ejecución estará escrito en HTML de modo que el navegador pueda leerlo y mostrarnos el resultado. Aunque ese es el funcionamiento básico, también podemos incluir consultas a bases de datos MySQL y la ejecución de otros elementos que veremos más adelante. Este esquema plantea el funcionamiento básico de un sitio escrito en php

A diferencia de HTML, PHP es un lenguaje de programación, y debe ser estudiado tal, es por eso, que en este curso dedicaremos el primer capítulo al estudio de los fundamentos básicos de programación.

Capítulo I: Fundamentos Básicos de Análisis Numérico y Programación Un algoritmo es una secuencia finita y ordenada de instrucciones que han de seguirse para resolver un problema. Dicha definición es la base misma de la programación pues lo que hace un lenguaje de programación es traducir un algoritmo. Hoy en día, existen diferentes técnicas de programación, unas más complejas de otras y en ocasiones algunas no pueden ser utilizadas con cualquier lenguaje de programación, las dos técnicas más comunes son: • •

Programación estructurada Programación orientada a objetos

La programación estructurada es una forma de escribir programas de manera clara. Para ello utiliza únicamente tres estructuras: secuencia, selección e iteración o instrucciones secuenciales, condicionales y repetitivas. Una de las herramientas que utilizan los programadores para traducir sus algoritmos en un lenguaje de programación cualquiera es el pseudocódigo, o falso lenguaje. Es decir, utilizando un lenguaje NO programable o inexistente que permita darle una estructura traducible a un determinado algoritmo. Mediante el análisis del pseudocódigo quien incursione en el mundo de la programación puede comprender la lógica que requiere el escribir un determinado programa y facilita la comprensión de cualquier otro lenguaje. Es por ello que en este capítulo describiremos las estructuras de control y los elementos fundamentales de un programa usando un pseudocódigo que traduciremos más adelante.

Pseudocódigo y estructura de un programa Podemos considerar que la ejecución básica de un algoritmo debe obedecer un cierto orden. Siguiendo este principio podemos afirmar que todo programa cuenta con una cabecera y un cuerpo donde se incluyen diferentes elementos. Claro, siendo la sintaxis de algunos lenguajes mas o menos restrictiva. En esencia la estructura básica de un programa es

1. Cabecera. 1. Programa.

2. Modulo. 3. Tipos de datos. 4. Constantes. 5. Variables. 2. Cuerpo. 1. Inicio. 2. Instrucciones. 3. Fin.

1.1 Programa Se refiere al nombre con el cual identificamos nuestro algoritmo, en pseudocódigo se define como: algoritmo NOTA: Aunque en un pseudocódigo no tenemos grandes restricciones en cuanto a la sintaxis de un programa, con el fin de adquirir buenas costumbres de programación vamos a evitar el uso de mayúsculas en nuestros programas.

1.2 Modulo Se refiere a los archivos necesarios que deberán incluirse para la correcta ejecución del programa por ejemplo librerías que contengan funciones especiales que utilizaremos en nuestro programa. Este elemento lo ignoraremos en este capítulo pues únicamente sentaremos las bases de la programación estructurada.

1.3 Tipos de datos Se refiere a la creación de nuevos tipos de dato, No definiremos tipos en este capítulo por lo que obviaremos este elemento.

1.4 Constantes Llamaremos una constante a un valor que no variara durante la ejecución de un programa, por ejemplo el valor de pi en un programa que calcule el área de un círculo siempre será el mismo 3.1416. De modo que nuestro pseudocódigo seria: algoritmo CONST pi = 3.1416

Como vemos, definimos que estamos declarando una constante utilizando una palabra clave, CONST, damos un nombre a la constante “pi” y posteriormente le asignamos un valor.

1.5 Variables Las variables son elementos que almacenan un valor que puede variar durante la ejecución de un programa. En la mayoría de los lenguajes de programación es necesario definirlas, es decir darles un nombre y asignarles el tipo de dato que van a almacenar. Aunque en PHP no es necesario pues el intérprete les asigna el tipo del dato del valor que contengan en este capítulo y a fin de extender la comprensión sobre el tipo de datos que pueden almacenar las variables y la interacción entre los mismos vamos a definirlas siempre. Por ejemplo, para un programa que calcule el área de un circulo, se requerirá el radio del mismo sabiendo que el área de un circulo se calcula multiplicando el valor de pi por el radio al cuadrado. Entonces radio será una variable pues no siempre calcularemos al área del mismo círculo además, necesitaremos una variable que almacene la respuesta. algoritmo CONST pi = 3.1416 var real: radio, resp En este ejemplo, hemos declarado la constante pi, y estamos declarando dos variables de nombre “radio” y “resp” que contendrán datos de tipo numérico real.

1.5.1 Tipos de datos En casi cualquier lenguaje de programación existen ciertos tipos de datos fundamentales, estos pueden ser de tipo numérico, cadenas y datos boléanos, aunque en cada lenguaje existe un identificador para cada tipo de dato. En este capítulo consideraremos únicamente: Numérico real entero

Números con decimales Números sin decimales

Cadena char cadena

Un solo carácter Más de un carácter

Boléanos Solo pueden contener valores verdaderos o falsos, por ejemplo cuando evaluamos condiciones o bucles repetitivos.

2.1 Inicio Todo programa e instrucción debe tener un inicio y un final, dicho elemento puede definirse sea con una palabra clave, o con un carácter, en nuestro pseudocódigo lo definiremos como: algoritmo CONST pi = 3.1416 var real:radio, resp Inicio NOTESE que no estamos considerando ningún delimitador entre las instrucciones, en nuestro pseudocódigo estamos considerando que un salto de línea delimita el fin de la instrucción.

2.2 Instrucciones Las instrucciones son las operaciones que se realizaran durante la ejecución del programa. OJO que he mencionado una palabra clave muy importante. “operaciones” y estas serán definidas por ciertos “operadores”

Operadores

Un operador, es un elemento que controla la ejecución del programa. Y existen operaciones de asignación, operadores aritméticos, relacionales y operadores lógicos. Operadores de Asignación Los operadores de asignación permiten asignarle un determinado valor a una variable. En nuestro pseudocódigo utilizaremos el signo “=” como nuestro operador de asignación. Operadores Aritméticos Como su nombre lo indica, son operadores que se utilizan usualmente para ejecutar operaciones aritméticas entre variables o bien entre variables y números. En pseudocódigo utilizaremos: + * / % ^

Suma Resta Producto Cociente Resto Potenciación

Operadores relacionales Son aquellos que se utilizan para evaluar si una condición es verdadera o es falsa. Y se utilizan principalmente en las instrucciones selectivas y las instrucciones repetitivas. > >= < 18 entonces escribir("Usted puede ingerir alcohol con moderacion") fin-si escribir("usted no puede ingerir alcohol") fin

Ahora, una vez que el usuario introduce su edad, la selectiva simple evalúa si es o no mayor de 18, si el usuario es mayor de 18 entra a la sentencia condicional si no, simplemente la salta y pasa a la siguiente línea. Aunque este ejemplo es válido, no muestra el uso correcto de las instrucciones selectivas pues la frase “usted no puede ingerir alcohol” debería estar dentro del condicional como una negativa a la primera condición.

NOTESE: que la sentencia finaliza con un fin-si es decir un FIN para el SI Selectivas dobles Se consideran sentencias que evalúan una condición, si dicha condición no se cumple entonces realizan otra acción siempre dentro de la misma estructura condicional. Por ejemplo para el caso anterior la sintaxis seria: algoritmo var real:edad Inicio escribir("Ingrese su edad: ") leer(edad) si edad > 18 entonces escribir("Usted puede ingerir alcohol con moderación") si-no escribir("usted no puede ingerir alcohol") fin-si Fin En este ejemplo se muestra una sintaxis más elaborada que no depende del modo en que se ejecuta el programa sino de las estructuras de control que se incluyen. Selectivas anidadas Básicamente, una selectiva anidada es una selectiva dentro de otra selectiva, podemos anidar un sinnúmero de estructuras, para no perder el hilo de nuestro programa, es importante que aprendamos a comentar nuestro código. Un comentario es básicamente una línea de código que no es leída y en nuestro pseudocódigo los representaremos como en php con una doble barra “//” Vamos a analizar un ejemplo en el que se le solicita al usuario los tres lados de un triangulo para saber si es equilátero, escaleno o bien si es isósceles. algoritmo

var real:lado1, lado2, lado3 inicio escribir("Ingrese los lados del triagulo: ") leer(lado1, lado2, lado3)

//inicio de la selectiva

si lado1 != lado2 entonces //ya sabemos el primer lado no es igual al segundo si lado2 != lado3 entonces //todos los lados son diferentes escribir("El triangulo es escaleno") si-no //uno de los lados es igual escribir("el triangulo es isosceles") fin-si

si-no //ya sabemos que el primero es igual al segundo si lado2 != lado3 entonces //tenemos dos lados iguales escribir("el triangulo es isosceles") si-no

//todos los lados son iguales escribir("el triangulo es equilatero") fin-si

fin Como podemos observar no es demasiado complicado, la parte difícil es el razonamiento de la lógica que seguirá el programa, es decir el diseño del algoritmo. El uso de selectivas anidadas requiere plantearse un esquema mental del procedimiento que seguirá al programa antes de empezar a escribir líneas de código. NOTESE: La sintaxis coloreada se utilizara de aquí en adelante a fin de definir los elementos propios del pseudocódigo, las variables y las cadenas de texto definidas por el programador. Selectivas Múltiples Una selectiva múltiple es una instrucción que nos permite realizar determinada acción en caso de que una variable “x” tome un valor “y” se utiliza la palabra clave “Según sea” para definir el segmento integrado por una selectiva múltiple. Por ejemplo si quisiéramos un programa que nos escribiera en letras los números del 1 al diez permitiéndole al usuario ingresar un numero en dicho rango nuestro pseudocódigo seria más o menos así: algoritmo var entero:numeros inicio escribir("ingrese un numero del 1 al 10") leer(numeros) Segun sea hacer 1: escribir("uno") 2: escribir("dos")

3: escribir("tres") 4: escribir("cuatro") 5: escribir("cinco") 6: escribir("seis") 7: escribir("siete") 8: escribir("ocho") 9: escribir("nueve") 10: escribir("diez") si-no escribir("Numero no valido") fin-segun fin Como hemos observado, en el caso de las selectivas múltiples son instrucciones que se ejecutan en caso de existir opciones predefinidas para una determinada situación. Por ejemplo, podríamos programar una calculadora que ejecutara una determinada acción para cada uno de los operadores aritméticos (OJO tratando cada operador como una variable de tipo carácter).

Ejercicio N.2 Como ejercicio para la práctica de las funciones secuenciales y las selectivas múltiples diseñe un pseudocódigo que simule una calculadora muy rudimentaria que permita al usuario sumar, restar multiplicar dividir, sacar raíz cuadrada y elevar un numero x a una potencia y.

2.2.3 Instrucciones repetitivas Las instrucciones repetitivas son aquellas que se ejecutan mientras se cumpla una condición. Dichas instrucciones deben ser finitas y contar siempre con un mecanismo de escape. Instrucción repetitiva mientras La instrucción mientras señala que un determinado procedimiento se ejecutara mientras una condición “X” sea verdadera. Existe en la mayoría de los lenguajes de programación incluyendo php. Nos permite por ejemplo, evaluar los números del 1 al 10 sumando aquellos que sean pares para mostrar al final la suma de los mismos. algoritmo var entero: i, ac inicio i = 0 ac = 0

mientras i < 10 hacer

si i % 2 == 0 entonces ac = ac + i si-no ac = ac fin-si

i = i + 1

fin-mientras escribir("la suma de los números pares del 1 al 10 es: ",ac) fin En principio se declararon las dos variables, i un contador y ac un acumulador ambas de tipo real, después se inicializaron (siempre se debe inicializar las variables asignándoseles un valor cuando se utilizaran en instrucciones repetitivas) Se evalúa si i es menor que 10, como i vale 0 para la primera secuencia entra al bucle mientras, se evalúa si el resto de i y 2 es 0 para evaluar si es un numero par, si lo es, se suma al acumulado “ac” si no, únicamente se le suma uno a i que regresa a evaluar si i es menor que 10 y así sucesivamente hasta que la condición i menor que 10 ya no se cumpla. Estructura repetitiva para Otra estructura repetitiva que conviene estudiar es la estructura para, que repite una acción desde x igual a n1 hasta n2 con un incremento de 1 o bien un incremento especificado por el usuario. A diferencia de la estructura mientras, la estructura para siempre incluye un contador que repetirá la instrucción x número de veces. Así pues, el ejemplo anterior puede ser escrito utilizando la estructura para, cuya sintaxis es: algoritmo var entero: i, ac inicio ac = 0

para i = 0 hasta

10 hacer

si i % 2 == 0 entonces ac = ac + i

si-no ac = ac fin-si fin-para escribir("la suma de los números pares del 1 al 10 es: ",ac) fin NOTESE: Que a diferencia de la estructura mientras, la variable contador se inicializa dentro de la propia estructura. Además el incremento si no se especifica siempre será de +1

Ejercicio N.3 Diseñe un pseudocódigo que devuelva usuario la suma de los números del 1 al 10 pares e impares de forma independiente.

2.3 Fin Todo programa, debe incluir un fin, aunque en los ejemplos anteriores lo hemos incluido y se sobreentiende que cada instrucción y procedimiento debe incluir un fin-procedimiento es importante recalcarlo en este apartado.

Conclusiones Se han estudiado los elementos comunes de cada uno de los lenguajes de programación, un paso importante para aprender cualquier otro lenguaje, sea este compilado o bien sea interpretado. Aunque muchas de las características aquí descritas, principalmente la declaración de variables no ha lugar en php, es importante considerar que aunque no se declaran, los tipos de variable existen aun en php. Así pues, esta introducción a la programación es perfectamente válida para php, tanto como para C, pascal o cualquier otro lenguaje, claro que se modificaron algunos operadores y procedimientos en nuestro pseudocódigo para ajustarlo al trabajo que realizaremos con php.

Capítulo II: Preparando el espacio de trabajo Es conveniente que si no sabes NADA de HTML te descargues el curso TuSitioYa antes de realizar PHP para todos, puedes hacerlo aquí: http://bloggeandolo.blogspot.com/2010/06/creando-un-sitio-web-desde-0.html Aunque hoy en día, existen muchos IDEs para trabajar con php, por ser el que más se ajusta a nuestras necesidades y por ser el que hemos utilizado en otros cursos como “TuSitioYa” vamos a utilizar Dreamweaver. Si no lo tienes, puedes descargarte la versión de prueba desde el sitio oficial de Adobe, nosotros en este tutorial trabajaremos con la versión CS5 por ser la más nueva. NO utilizaremos en absoluto más que en la configuración más básica, el modo diseñador de Dreamweaver.

Si utilizas Linux o bien Windows pero no deseas descargar Dreamweaver puedes seguir este tutorial utilizando eclipse o cualquier otro IDE.

Si prefieres no utilizar ningún software adicional, también puedes trabajar con el bloc de notas. Al fin y al cabo, lo que si necesitaremos y está disponible de forma gratuita es un servidor. Tanto para Linux como para Windows, podemos descargarnos xampp desde el sitio oficial http://www.apachefriends.org/es/xampp.html

Una vez que lo hemos instalado, conviene que iniciemos apache y MySQL. No requeriremos nada más por el momento.

Una vez que hemos iniciado apache, vamos a iniciar Dreamweaver para configurar el servidor con el que vamos a trabajar y la dirección donde guardaremos nuestros archivos.

En la pantalla de Inicio de Dreamweaver, vamos a seleccionar, Nuevo… Sitio de Dreamweaver. Si has leído TuSitioYa este procedimiento te será muy familiar, recuerdas cuando dijimos que no especificaríamos nada en “Servidor” esta vez ha cambiado. Php necesita ser interpretado y hemos instalado un servidor en nuestra PC para hacerlo.

Ojo con la dirección, en mi caso voy a ubicar mi sitio en C:\xampp\htdocs\phpya\ puedes variar la dirección de la ultima carpeta, pero siempre debes ubicar tu sitio dentro de la carpeta htdocs de xampp En la pestaña servidores haremos clic sobre “+” para agregar un nuevo servidor, y donde configuraremos así nuestro nuevo sitio

Ahora, crearemos un nuevo archivo php

Y vamos a escribir lo siguiente entre el

Damos vista previa en el navegador y deberíamos de ver algo más o menos así:

Aunque no te has dado cuenta de cómo, has escrito tu primer programa en php, pero bueno… no es la gran cosa, sin embargo prueba que hemos instalado apache, php y lo hemos configurado correctamente en Dreamweaver.

NOTESE: Para quienes utilicen algún otro software como eclipse o bien bloc de notas, basta con guardar los documentos dentro de la carpeta htdocs de xampp y ejecutar desde localhost para ejecutar sus programas.

Capítulo III: Introducción a PHP ¿Vale que era hora de empezar con php he? Aunque hemos descrito los elementos básicos de un programa en el capítulo I es hora de trabajar específicamente con php.

Inicio del programa Para indicarle al servidor que un lenguaje, o un segmento de un sitio está escrito en php y debe ser traducido por el intérprete se señala dicho programa con:

Todas las sentencias incluidas entre estos símbolos serán interpretadas y traducidas para devolver un elemento escrito en HTML. Por ejemplo, si en un sitio escribirnos:

El navegador lo traducirá como

Por otro lado, si escribimos

A la hora de visualizarlo en el navegador recibiremos el siguiente mensaje de error

De modo que de aquí en adelante, lo UNICO que podremos escribir entre las sentencias será en efecto, PHP.

Constantes Las constantes en php se declaran utilizando la función define(), y ubicando entre paréntesis en nombre de la constante y su valor. Por ejemplo, para definir el valor constante de pi, seria:

Variables Un elemento fundamental en cualquier lenguaje de programación son las variables, en PHP no hace falta declararlas antes de asignarles un valor, de hecho una variable se declara en el momento en que se le asigna un valor, dicha declaración la realiza el interprete en el momento de la ejecución.

Debemos tener presentes los tipos, pues no podemos sumar una variable de tipo cadena con una variable de tipo numérico. Para declarar una variable en php, basta con utilizar el signo $ para identificar el elemento como una variable y asignarle un valor cualquiera. Si dicho valor es una cadena, debe estar entre comillas. Por ejemplo: $a = “http://bloggeandolo.blogspot.com” En nuestro programa, vamos a definir varias variables a fin de trabajar mas adelante con ellas. Definiremos una de tipo entero, una de tipo real, una de tipo cadena y una de tipo booleana.

NOTESE: que se usa “;” como delimitador para cada expresión, esto es importante pues le permite al intérprete identificar cada instrucción. Como se puede observar, basta con asignarle un valor a nuestra variable para declararla. El texto escrito tras las // es un comentario y será ignorado por el interprete.

Salida de datos PHP, hace uso de elementos propios de HTML como dispositivos de entrada, estos son los formularios. Sin embargo, antes de comprender el uso de dichos elementos, debemos repasar las instrucciones selectivas y las instrucciones repetitivas.

Así pues, por el momento, únicamente trabajaremos con programas predefinidos que muestren datos. La función equivalente a nuestro “escribir” en pseudocódigo es “echo” Y funciona de la siguiente forma:

Esto imprimiría en el navegador:

Utilizando la función echo entonces podríamos darle algún formato a nuestro texto utilizando HTML. Por ejemplo

Que imprimirá

Esta es la forma en la que HTML sirve de “consola” a PHP

Vectores Un array, es una colección de valores, y pueden ser unidimensionales, bidimensionales o multidimensionales, Nos permiten almacenar una variedad de datos que son delimitados por un identificador que puede ser numérico o bien una cadena, si no se especifica un valor, este será numérico y comenzara desde 0, se ubica entre dos corchetas. Se definen de la siguiente forma:

En el navegador, dicho programa imprimirá

OJO que no definimos identificadores para el array, por lo tanto este empieza desde 0, donde el valor de la variable $nombre será Juan. Otra forma de definir arrays, y nos permite crear estructuras mas complejas es utilizando la función array, y su sintaxis es la siguiente: $variable = array(“valor” => “contenido”, “otro valor” => “contenido”) Y en un programa, donde anidamos un par de arrays:

Que en el navegador imprimiría:

Operadores Así como con nuestro pseudocódigo php cuenta con sus propios operadores, las principales variaciones respecto a nuestro pseudocódigo son los valores de asignación pues aunque se mantiene “=” como principal operador de asignación en php se mezclan operadores de asignación con algunos operadores aritméticos sin embargo no es un requisito realizar las operaciones de esta manera. Operadores aritméticos + * / % ++ -Operadores de asignación = += -= *= /= %= .=

Operadores lógicos ! and or xor &&

Suma dos valores Resta dos valores (o pasa a negativo un valor) Multiplica dos valores Divide dos valores Resto de dividir dos valores Incremento en una unidad Decremento en una unidad

Asigna a la parte derecha el valor izquierdo Realiza la suma de la derecha con la izquierda y la asigna a la derecha Realiza la resta de la derecha con la izquierda y la asigna a la derecha Realiza la multiplicación de la derecha con la izquierda y la asigna a la derecha Realiza la división de la derecha con la izquierda y la asigna a la derecha Se obtiene el resto y se asigna Concatena el valor de la izquierda con la derecha y lo asigna a la derecha

Operador NO o negacion. Si era true pasa a false y viceversa Operador Y, si ambos son verdaderos vale verdadero Operador O, vale verdadero si alguno de los dos es verdadero Verdadero si alguno de los dos es true pero nunca ambos True si ambos lo son

||

True si alguno lo es

Operadores condicionales == != > < >=