Guia_php

  • Uploaded by: Alberto Moreno Cueva
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Guia_php as PDF for free.

More details

  • Words: 18,327
  • Pages: 127
Desarrollo de Portales

-1-

Ing.Alberto Moreno C.

DESARROLLO DE PORTALES

GUIA DE PHP5

ELABORADO POR: PROF. ING. ALBERTO MORENO C.

Desarrollo de Portales Capitulo1. • • • • • •

-2-

Ing.Alberto Moreno C.

Conceptos Básicos Requerimientos Tipos de datos Variables operadores Script de un programa en PHP

Capitulo2.• • • • •

Instrucciones condicionales Instrucciones repetitivas Objetos Arreglos y Matrices Funciones

Capitulo 3.• • •

Funciones Fecha Funciones de Cadena Funciones Numéricas

Capitulo 4.• • • • • • • • •

Mysql Creación de BDD y Tablas Creaciones de Claves primarias y foraneas Conexión con la Base de Datos Lectura de Tabla Adicion de registros Eliminación Actualizacion Clases en PHP

Capitulo 5.• • • •

Apliacciones con BDD , consultas en cascadas Funciones para manipular archivos tipos binarios Administrador de archivos Envio de E-mail

Desarrollo de Portales Capitulo 6.• • •

-3-

Ing.Alberto Moreno C.

Aplicaciones Graficas Funciones y Metodos graficos Aplicaciones y ejercicios

Capitulo 7.• •

Desarrollo de paginas con Wizard Inserción , listados, etc.

Desarrollo de Portales Conceptos básicos

-4-

Ing.Alberto Moreno C.

El lenguaje PHP es un lenguaje de programación de estilo clásico, con esto quiero decir que es un lenguaje de programación con variables, sentencias condicionales, bucles, funciones.... No es un lenguaje de marcas como podría ser HTML, XML o WML. Está mas cercano a JavaScript o a C, para aquellos que conocen estos lenguajes. Pero a diferencia de Java o JavaScript que se ejecutan en el navegador, PHP se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podría ser una base de datos. El programa PHP es ejecutado en el servidor y el resultado enviado al navegador. El resultado es normalmente una página HTML pero igualmente podría ser una pagina WML.

Al ser PHP un lenguaje que se ejecuta en el servidor no es necesario que su navegador lo soporte, es independiente del navegador, pero sin embargo para que sus páginas PHP funcionen, el servidor donde están alojadas debe soportar PHP. INSTALACION DEL APPSERV O PHPDEV VERSION 5.1 Es totalmente gratuito la instalacion se puede descargar desde

Internet, hay varias

direcciones para su descarga siendo la pagina principal : www.php.net Su intslacion puede realizarle sobre cualquier plataforma operativa tales como: windows 98 , windows Xp, windows 2000 server, 2003 y windows vista.

EL APPSERV o PHPDEV es un programa que instalara el servidor APACHE, PHP y MYSQL sin necesidad de configurar muchas cosas.

Desarrollo de Portales

-5-

Ing.Alberto Moreno C.

3.- INSTALAR APPSERVER Abrimos el archivo appserver (hasta la fecha ,es la ultima versión)

Aquí se escoge la ruta donde se desea instalar. Luego se presiona el botón INSTALL Se recomienda que se deje por defecto la ruta a instalar INICIAR SERVIDOR APACHE - PHP Una vez terminada la instalación veremos una

carpeta

llamada

PHPDEV

que

contendrá otras sub carpetas como se ve en la figura de la izquierda

Ahora debemos de activar el servidor APACHE para eso nos vamos al menu INICIO Programas

PHPDEV -

Desarrollo de Portales Debería salir las siguientes ventanas.

-6-

Ing.Alberto Moreno C.

Esto significa que el servidor apache esta corriendo Además también sale la sgte. pagina

5.- DONDE ALOJAR MIS PAGINAS PHP

Para que el servidor apache pueda interpretar nuestras paginas PHP se deben de guardar dentro de la carpeta APPSERVER - WWW Ahora si queremos podríamos crear carpetas dentro de esta ruta; por ejemplo creamos la carpeta MICARPETA dentro de APPSERVER WWW, para poder visualizar las paginas que están ahí entramos al navegador de Internet y ponemos http://localhost/micarpeta/pag.php y se mostrara la pagina PAG.PHP que se supone que esta dentro de MICARPETA

NOTA: Si alojamos por ejemplo la pagina PAG2.PHP en la ruta PHPDEV Para poder visualizar esta pagina debemos de escribir en el navegador web http://localhost//pag2.php

5.- MI PRIMERA PAGINA CON PHP

WWW

Desarrollo de Portales -7Ing.Alberto Moreno C. Para crear paginas PHP necesitamos un editor de paginas web (DreamWeaver , Front Page o simplemente el Block de Notas) en este caso utilizaremos Dreamweaver Para eso primero debemos crear un sitio web. Bueno ese punto se supone que ya lo sabemos así que lo único importante que hay que rescatar de esto es en donde crear el sitio web Podrá ser en cualquier sitio??? No

. Eso debido a que las paginas deben de guardarse en

PHPDEV WWW se acuerdan ???

Ahora para poder ver las paginas directamente desde el dreamweaver sin necesidad de entrar al navegador web vamos a configurar un SERVIDOR DE PRUEBA En Modo de Servidor escogemos el tipo de programación a usar. En acceso escogemos el tipo de acceso que tendremos en este caso LOCAL RED En carpeta de servidor se mostrara la carpeta que escogimos para nuestro sitio.

Desarrollo de Portales -8Ing.Alberto Moreno C. En PREFIJO DE URL debemos de poner la ruta que escribiremos en el navegador web para acceder a nuestro sitio. En este caso http://localhost sale por defecto debiendo aumentar el nombre de la carpeta (CLASE1). Al final quedaría http://localhost/clase1 Una vez configurado nuestro sitio vamos a crear nuestra pagina PHP así que nos vamos al menú Archivo

Nuevo

Al crear una pagina lo mas probables es que trabajemos en la vista de Código ya que vamos a programar en la pagina. La programación PHP se mezcla con el HTML es decir dentro de la pagina podemos poner cualquier cosa en PHP. Para escribir código PHP dentro de una página html, tenemos varias alternativas: •

Incluir el código entre



Incluir el código entre



Incluir el código entre bloques <SCRIPT LANGUAGE="php"> y

En el ejemplo anterior lo que se ha programado en PHP es ECHO HOLA UCSS ; echo .- es una instrucción que permite escribir o visualizar algo en una pagina

Desarrollo de Portales

-9-

Ing.Alberto Moreno C.

NOTA IMPORTANTE .- Al final de cada instrucción va punto y coma. Además las palabras reservadas son sensibles a mayúsculas y minúsculas (Casi todas las palabras reservadas en PHP se escriben en minúsculas)

L Nuestro primer PHP La ventaja que tiene PHP sobre otros lenguajes de programación que se ejecutan en el servidor (como podrían ser los script CGI Perl), es que nos permite intercalar las sentencias PHP en las paginas HTML, es un concepto algo complicado de entender si no se ha visto nunca como funciona unas paginas PHP o ASP. Una vez que ya tenemos instalados PHP y MySQL, y el servidor Apache configurado para usarlos, podemos comenzar a escribir nuestro primer Script en PHP. Ejemplo script php Una vez escrito esto lo salvamos en un fichero con la extension php3, y lo colocamos en nuestro servidor, http://mi_servidor/php/test.php3. Ahora si ponemos esta URL en nuestro navegador veremos una linea con el texto "Hola Mundo. Este es mi primer script en PHP". Lo primero que apreciamos en el script son sus delimitadores. En la primera línea del script vemos para indicar el final del script. Hay que destacar que todas las líneas que se encuentre entre estos delimitadores deben acabar en punto y coma, excepto las sentencias de control (if, swich, while, etc.). Como en toda programación, es importante poner muchos comentarios, para lo cual si queremos comentar una sola línea tenemos que poner al principio de la línea //, si lo que queremos es comentar varias utilizaremos los delimitadores /* - */. Para que el servidor envie texto utilizaremos la instrucción echo, aunque también podemos utilizar printf de uso similar al del C oPerl. Finalmente, vemos que la palabra myvar comienza con el signo dólar ($) . Este símbolo le indica a PHP que es una variable. Nosotros le hemos asignado un texto a esta variable, pero también pueden contener números o arrays. Es importante recordar que todas las variables comienza con el signo dólar.

Ejemplo 2.- Muesra diez lineas Parte de HTML normal.



Desarrollo de Portales

-10-

Ing.Alberto Moreno C.

"; for($i=0;$i<10;$i++) { echo "Linea ".$i."
"; } ?>



El código PHP ejecutado tiene dos partes: la primera imprime "Parte de PHP" y la segunda es un bucle que se ejecuta 10 veces de 0 a 9, por cada vez que se ejecuta se escribe una línea, la variable $i contiene el número de línea que se está escribiendo. No importa si no entiende muy bien el programa este ejemplo solo es para ilustrar como se intercala el código HTML y el código PHP.

Variables Una variable es un contenedor de información, en el que podemos meter números enteros, números decimales, carácteres... el contenido de las variables se puede leer y se puede cambiar durante la ejecución de una página PHP. En PHP todas las variables comienzan con el símbolo del dólar $ y no es necesario definir una variable antes de usarla. Tampoco tienen tipos, es decir que una misma variable puede contener un número y luego puede contener carácteres. Ejemplo de PHP ",$b,"
",$c; ?>

En este ejemplo hemos definido tres variables, $a, $b y $c y con la instrucción echo hemos impreso el valor que contenían, insertando un salto de línea entre ellas. Existen 2 tipos de variables, las variables locales que solo pueden ser usadas dentro de funciones y las variables globales que tienen su ámbito de uso fuera de las funciones,

Desarrollo de Portales

-11-

Ing.Alberto Moreno C.

podemos acceder a una variable global desde una función con la instrucción global nombre_variable; Operadores Aritméticos Los operadores de PHP son muy parecidos a los de C y JavaScript, si usted conoce estos lenguajes le resultaran familiares y fáciles de reconocer. Estos son los operadores que se pueden aplicar a las variables y constantes numéricas. Operador Nombre

Ejemplo Descripción

+

Suma

5+6

Suma dos números

-

Resta

7-9

Resta dos números

*

Multiplicación

6*3

Multiplica dos números

/

División

4/8

Divide dos números

%

Módulo

7%2

Devuelve el resto

++

Suma 1

$a++

Incremento

--

Resta 1

$a--

Decremento

Ejemplo de PHP "; echo $a - $b,"
"; echo $a * $b,"
"; echo $a / $b,"
"; $a++; echo $a,"
"; $b--; echo $b,"
"; ?> resultado 11 5 24 2.6666666666667 9 2

Comparación Los operadores de comparación son usados para comparar valores y así poder tomar decisiones.

Desarrollo de Portales

-12-

Operador Nombre

Ing.Alberto Moreno C.

Ejemplo Devuelve cierto cuando:

==

Igual

$a == $b $a es igual $b

!=

Distinto

$a != $b $a es distinto $b

<

Menor que

$a < $b

$a es menor que $b

>

Mayor que

$a > $b

$a es mayor que $b

<=

Menor o igual $a <= $b $a es menor o igual que $b

>=

Mayor o igual $a >= $b $a es mayor o igual que $b

Ejemplo de PHP "; echo $a != $b,"
"; echo $a < $b,"
"; echo $a > $b,"
"; echo $a >= $c,"
"; echo $b <= $c,"
"; ?>

Operadores Lógicos

Los operadores lógicos son usados para evaluar varias comparaciones, combinando los posibles valores de estas. Operador Nombre Ejemplo

Devuelve cierto cuando:

&&

Y

(7>2) && (2<4)

Devuelve verdadero cuando ambas condiciones son verdaderas.

and

Y

(7>2) and (2<4)

Devuelve verdadero cuando ambas condiciones son verdaderas.

||

O

(7>2) || (2<4)

Devuelve verdadero cuando al menos una de las dos es verdadera.

or

O

(7>2) or (2<4)

Devuelve verdadero cuando al menos una de las dos es verdadera.

!

No

! (7>2)

Niega el valor de la expresión.

Desarrollo de Portales

-13-

Ing.Alberto Moreno C.

Ejemplo de PHP $b),"
"; echo ($a == $b) || ($b == $c),"
"; echo !($b <= $c),"
"; ?>

Condicionales Las sentencias condicionales nos permiten ejecutar o no unas ciertas instrucciones dependiendo del resultado de evaluar una condición. Las más frecuentes son la instrucción if y la instrucción switch. Sentencia if ... else La sentencia if ejecuta una serie de instrucciones u otras dependiendo de la condición que le pongamos. Probablemente sea la instrucción más importante en cualquier lenguaje de programación. Ejemplo de PHP
Desarrollo de Portales

-14-

Ing.Alberto Moreno C.

} else { echo "a no es menor que b"; } ?> En este ejemplo la condición no es verdadera por lo que se ejecuta la parte de código correspondiente al else. Sentencia switch ... case Ejemplo de PHP

Con la sentencia switch podemos ejecutar unas u otras instrucciones dependiendo del valor de una variable, en el ejemplo anterior, dependiendo del valor de la variable $posicion se ejecuta el bloque 1 cuando el valor es "arriba", el bloque 2 cuando el valor es "abajo" y el bloque 3 si no es ninguno de los valores anteriores.

Variables estaticas y globales
Desarrollo de Portales

-15-

Ing.Alberto Moreno C.

function cambia() { global $cad; // observe que el valor sera cambiado $cad="estamos ahora en la funcion"; } function cuenta() { static $a=0; $b=0; $a++; $b++; echo "
valor de a=$a ..b=$b"; } echo "valores
"; cuenta(); cuenta(); cuenta(); $cad="estamos en la pag. principal
"; echo $cad; cambia(); echo $cad; $n=45.566; //a diferencia de echo printf da un valor con formato printf("

valor de n=%5.2f",$n); ?> La salida sera:

Colocar estilos en una pagina, o tambien puede efectuarse en una pagina aparte de hoja de estilos, esto nos van a permitir colocar atributos a diferentes etquitas en HTML Ejemplo: Generar valores aleatorios entre 100-2000, si el valor generado es menos de 800 colocar fondo Rojo con letras blancas Si es esta entre 800 y menor de 1000 fondo gris y letras negras Si esta entre 1000 y 2000 fondo verde y letras negras

Desarrollo de Portales -16Ing.Alberto Moreno C. Tabla con datos aleatorios <style type="text/css"> .estilo1 { background-color:#00FF00; color:#000000} //fondo verde color de car rojo .estilo2 {background-color:#CCCCCC; color:#000000}//fondo plomo letras negras .estilo3 {background-color:#FF0000; color:#FFFFFF} // Fondo Rojo Letras Blancas
Critico"; { $obs="critico"; echo ""; } elseif($mon<1000) //$obs="<span class=estilo2>Baja"; { $obs="Regular"; echo ""; } else //$obs="<span class=estilo1>regular"; { $obs ="bueno"; echo ""; } echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo "

Mes

IngresosObservacion
$m$mon$obs"; }

?>

Desarrollo de Portales

-17-

Ing.Alberto Moreno C.

Ejemplo Hoja de estilos , ingresando un valor que muestre la tabla de multiplicar de dicho valor , pero mostrando las filas pares con un fondo plomo y las filas pares con un color verde : Codigo multiplica.php Multiplica <style type="text/css"> .estilo3 {background-color:#3333FF; color:#FFFFFF; font:"Arial Black"} .estilo1 {background-color:#00FF00; color: #000000} .estilo2 { background-color:#CCCCCC; color:#000000; font-style:italic}
Valor
 
<strong>Expresion <strong>producto
tabla del $n"; for($a=1;$a<=12;$a++) { $p=$n*$a; if($a%2==0) echo "
$a x $n=$p\n"; else echo "
$a x $n=$p\n"; } } ?>

Desarrollo de Portales

 



-18-

Ing.Alberto Moreno C.

Programa `para obtener la hora del sistema, y que muestre un saludo de acuerdo a la hora en que nos encontramos: hora :$t
"; if( $t<"12:00:00" ) echo "buenos dias"; elseif ($t<"18:00:00") echo "buenas tardes"; else echo "buenas noches"; echo "
version ..". PHP_VERSION; echo "
otra ruta ".__FILE__; echo "
nombre del fichero ".$PHP_SELF;

Desarrollo de Portales

-19-

Ing.Alberto Moreno C.

?> La salida será:

VARIABLES DE SISTEMA Dada su naturaleza de lenguaje de lado servidor, PHP es capaz de darnos acceso a toda una serie de variables que nos informan sobre nuestro servidor y sobre el cliente. La información de estas variables es atribuida por el servidor y en ningún caso nos es posible modificar sus valores directamente mediante el script. $_ENV -- Contiene las variables del sistema. $_GET -- Contiene las variables en el "query string" incluyendo los formularios GET. $_POST -- Contiene las variables enviadas des de un formulario POST. $_COOKIE -- Contiene todas las variables de las Cookies. $_SERVER -- Contiene todas las variables de servidor, tales como HTTP_USER_AGENT.etc. $_REQUEST -- Contiene todo dentro de $_GET, $_POST y $_COOKIE. $_SESSION -- Contiene todas las variables de sesiones registradas.

$_SERVER Existen multitud de variables de este tipo, algunas sin utilidad aparente y otras realmente interesantes y con una aplicación directa para nuestro sitio web. Aquí algunas de las propiedades de estas variables Variable

Descripción Nos informa principalmente sobre el sistema operativo y tipo

HTTP_USER_AGENT

y versión de navegador utilizado por el internauta. Su principal utilidad radica en que, a partir de esta información, podemos redireccionar nuestros usuarios hacia páginas

Desarrollo de Portales

-20-

Ing.Alberto Moreno C.

optimizadas para su navegador o realizar cualquier otro tipo de acción en el contexto de un navegador determinado. Nos devuelve la o las abreviaciones de la lengua considerada como principal por el navegador. Esta lengua o HTTP_ACCEPT_LANGUAGE

lenguas principales pueden ser elegidas en el menú de opciones del navegador. Esta variable resulta también extremadamente útil para enviar al internauta a las páginas escritas en su lengua, si es que existen. Nos indica la URL desde la cual el internauta ha tenido

HTTP_REFERER

acceso a la página. Muy interesante para generar botones de "Atrás" dinámicos o para crear nuestros propios sistemas de estadísticas de visitas. Nos devuelve una cadena con la URL del script que está

PHP_SELF

siendo ejecutado. Muy interesante para crear botones para recargar la página. Almacena la variable usuario cuando se efectúa la entrada a

PHP_AUTH_USER

páginas de acceso restringido. Combinado con $PHP_AUTH_PW resulta ideal para controlar el acceso a las páginas internas del sitio. Almacena la variable password cuando se efectúa la entrada

PHP_AUTH_PW

a páginas de acceso restringido. Combinado con $PHP_AUTH_USER resulta ideal para controlar el acceso a las páginas internas del sitio.

REMOTE_ADDR DOCUMENT_ROOT

PHPSESSID

Muestra la dirección IP del visitante. Nos devuelve el path físico en el que se encuentra alojada la página en el servidor. Guarda el identificador de sesión del usuario. Veremos más adelante en qué consisten las sesiones.

Ejemplo: Navegador web : ".$_SERVER['HTTP_USER_AGENT']."
"; echo "IP del Vistante : ".$_SERVER['REMOTE_ADDR']."
"; echo "Nombre del Servidor : ".$_SERVER['SERVER_NAME']."
";

Desarrollo de Portales ?> Resultado:

-21-

Ing.Alberto Moreno C.

Ejemplo con formularios: Pasando valores a otros formularios (Los datos pueden ser enviados por el metodo POST o GET) Formulario.html <TITLE>Formulario de Recepción de Pedidos

Recepción de Pedidos

Nombre Usuario:
Listado de libros disponibles:
  • Libro A - (Precio = 10) - Unidades:
  • Libro B - (Precio = 12) - Unidades:



Desarrollo de Portales

-22-

Valores recibos por Procesar1.php <TITLE>Datos Introducidos

Datos Introducidos

$nom

"; echo "Número Unidades Libro A = $UniA
"; echo "Número Unidades Libro B = $UniB
"; ?>

Ing.Alberto Moreno C.

Desarrollo de Portales

-23-

Ing.Alberto Moreno C.

Primera Practica continua PHP Objetivo.- Con estos primeros ejercicios , le va ayudar a familiarizarse con este lenguaje , desde ya cree su sitio para colgar sus páginas, para la respectiva presentación en www.tripod.com 1.- Ingresar como datos , la dimensiones del terreno( largo y ancho) y el precio por metro cuadrado , y un check box (da Cuota inicial) en una página htm , luego mostrar los datos calculados como : El área del Terreno, El Precio Total , Cuota inicial y el Pago Mensual. Condición.- El pago es en dos años si se da una cuota inicial(15% del precio del terreno se hará un descuento del 3% del precio)

2.-Realizar una proforma de venta de una computadora ensamblada

Precios: Monitor 15 à$ 60 , 17 à$80 Procesador : 2200 Mhz à$120 , 1800 à $105 , 1200 à$80 ,800à $70 Memoria : 128à $60 , 256à$80 , 512 à$100

3.- Empleando Bucles y tablas mostrar la tabla de multiplicar:

Desarrollo de Portales

-24-

Ing.Alberto Moreno C.

4.- Dos atletas parten de dos puntos diferentes A y B separados una distancia D , con velocidades diferentes ( la velocidad del atleta A tiene que ser mayor al de B) , se pide mostrar una tabla de tiempo y distancias recorridas por el atleta A y B cada 3 segundos , como también en que tiempo alcanza el atleta A al B Distancia Recorridas Velocidad A m/seg Velocidad B m/seg Distancia de separación Enviar

Tiempo

Distancia x A Distanciax B

<
4.-El gobierno tiene un plan para vivienda de los docentes , bajo las siguientes condiciones : Si los ingresos del comprador son menores a $500 , dará como cuota inicial del 2% del costo de la casa y el resto lo distribuirá en pago mensuales, a pagar en diez años; Si los ingresos del comprador es mayor a $500 la cuota inicial será del 5% y el resto se pagara en pago mensuales de siete años Se pide mostrar la cuota inicial y el pago mensual del comprador, el dato de ingreso es el costo de la casa y el ingreso del trabajador.

Desarrollo de Portales

-25-

Ing.Alberto Moreno C.

5.- Inabec ofrece prestamos a todos los docentes para comprar computadoras, o seguir estudios de especialización , teniendo como datos de entrada :

Consideraciones: Ø Los intereses de acuerdo a los meses son para 6 m -> 20% , 12m -> 35% y 18m -> 50% Ø Las cuotas mensuales son constantes Ø El saldo disminuye cada mes hasta cero

6.- Elabore una Pagina de que permita establecer los enlaces con otras paginas. Validar estos datos en una pagina PHP Colocar las contraseñas en una arreglo , si existe mostrara el menú que une todas las paginas.

Uso de Constantes : Por ejemplo para obtener la versión del PHP la ruta donde esta instalado <TITLE>Constantes de PHP \n"; echo "El sistema operativo es: ",PHP_OS,"
\n"; echo "Estoy en el fichero ",__FILE__," línea ",__LINE__,""; ?>

Desarrollo de Portales

-26-

Ing.Alberto Moreno C.

Bucles Los bucles nos permiten iterar conjuntos de instrucciones, es decir repetir la ejecución de un conjunto de instrucciones mientras se cumpla una condición. Sentencia while Mientras la condición sea cierta se reiterará la ejecución de las instrucciones que están dentro del while. Ejemplo de PHP Inicio
"; $i++; } ?> Final


En el siguiente ejemplo, el valor de $i al comienzo es 0, durante la ejecución del bucle, se va sumando 1 al valor de $i de manera que cuando $i vale 10 ya no se cumple la condición y se termina la ejecución del bucle.

Sentencia for
Desarrollo de Portales

-27-

Ing.Alberto Moreno C.

{ intrucciones a ejecutar. } ?> Ejemplo de PHP Inicio
"; } ?> Final
Resultado Inicio El valor de i es El valor de i es El valor de i es El valor de i es El valor de i es El valor de i es El valor de i es El valor de i es El valor de i es El valor de i es Final

0 1 2 3 4 5 6 7 8 9

La instrucción for es la instrucción de bucles más completa. En una sola instrucción nos permite controlar todo el funcionamiento del bucle. El primer parámetro del for, es ejecutado la primera vez y sirve para inicializar la variable del bucle, el segundo parámetro indica la condición que se debe cumplir para que el bucle siga ejecutándose y el tercer parámetro es una instrucción que se ejecuta al final de cada iteración y sirve para modificar el valor de la variable de iteración.

Salida Hasta ahora hemos usado la instrucción echo para realizar salida a pantalla, esta instrucción es bastante limitada ya que no nos permite formatear la salida. En esta página veremos la instrucción printf que nos da mucha más potencia. Sentencia printf

Desarrollo de Portales

-28-

Ing.Alberto Moreno C.

La cadena de formateo indica cómo se han de representar las valores que posteriormente le indicaremos. La principal ventaja es que además de poder formatear los valores de salida, nos permite intercalar texto entre ellos. Ejemplo de PHP

La cadena de formato puede incluir una seria de carácteres especiales que indican como formatear las variables que se incluyen en la instrucción. Elemento

Tipo de variable

%s

Cadena de carácteres.

%d

Número sin decimales.

%f

Número con decimales.

%c

Carácter ASCII.

Aunque existen otros tipos, estos son los más importantes.

Ejemplo de PHP %s
con números %d
",$var,$num); printf(""); for ($i=0;$i<10;$i++) { printf("",$i); } printf("
%10.d
"); ?>

Manejo de cadenas

Desarrollo de Portales

-29-

Ing.Alberto Moreno C.

Dado el uso del lenguaje PHP el tratamiento de cadenas es muy importante, existen bastantes funciones para el manejo de cadenas, a continuación explicaremos las más usadas. 1. strlen(cadena). Nos devuelve el número de carácteres de una cadena. 2. split(separador,cadena). Divide una cadena en varias usando un carácter separador. 3. sprintf(cadena de formato, var1, var2...). Formatea una cadena de texto al igual que printf pero el resultado es devuelto como una cadena. 4. substr(cadena, inicio, longitud). Devuelve una subcadena de otra, empezando por inicio y de longitud longitud. 5. chop(cadena). Elimina los saltos de línea y los espacios finales de una cadena. 6. strpos(cadena1, cadena2). Busca la cadena2 dentro de cadena1 indicándonos la posición en la que se encuentra. 7. str_replace(cadena1, cadena2, texto). Reemplaza la cadena1 por la cadena2 en el texto.

Ejemplo de PHP "; $palabras=split(" ","Esto es una prueba"); for($i=0;$palabras[$i];$i++) echo $palabras[$i],"
"; $resultado=sprintf("8x5 = %d
",8*5); echo $resultado,"
"; echo substr("Devuelve una subcadena de otra",9,3),"

"; if (chop("Cadena \n\n ") == "Cadena") echo "Iguales

"; echo strpos("Busca la palabra dentro de la frase", "palabra"),"

"; echo str_replace("verde","rojo","Un pez de color verde, como verde es la hierba."),"
"; ?>

Resultado 5 Esto es una prueba 8x5 = 40

Desarrollo de Portales

-30-

Ing.Alberto Moreno C.

Un pez de color rojo, como rojo es la hierba.

Envio de archivos al servidor Ejem. Para pasar las características de un archivo seleccionado de una caja de dialogo: <TITLE>Carga de ficheros


Salida

", $HTTP_POST_FILES['mifichero']['type'], ""; echo "
\n"; echo "Nombre: ", $HTTP_POST_FILES['mifichero']['name'], ""; echo "
\n"; echo "Tamaño: ", $HTTP_POST_FILES['mifichero']['size'], ""; echo "
\n"; echo "Almacenado temporalmente en: "; echo $HTTP_POST_FILES['mifichero']['tmp_name'], "\n"; ?>

Ejemplo.- Para ver el nombre del fichero,del servidor y el Servidor Web instalado

Desarrollo de Portales

-31-

Ing.Alberto Moreno C.

<TITLE>Variables de Servidor $PHP_SELF
\n"; echo "Nombre del servidor: $SERVER_NAME
\n"; echo "Software: $SERVER_SOFTWARE
\n"; ?>

Objetos PHP permite la construcción de objetos con atributos y métodos propios , con herencia y redefinición de funciones. Por ejemplo creamos una clase llamada persona , que determina todas las características de los objetos que van a pertenecer a dicha clase . Para ello en la definición de la clase se detallan tanto loa atributos(variables de la clase que tomaran un determinado valor en cada objeto de dicha clase. Como los métodos (mediante una función para cada método ) la palabra reservada para la definición es class. <TITLE>Objetos en PhP Nombre = $varnombre; } function Ahorra($Cantidad) { $this->DineroAhorrado += $Cantidad; echo $this->Nombre, " tiene ahorrado ", $this->DineroAhorrado, "
\n"; } function Gasta($Cantidad) { if ($this->DineroAhorrado >= $Cantidad) { $this->DineroAhorrado -= $Cantidad; echo $this->Nombre, " tiene ahorrado ", $this->DineroAhorrado, "
\n"; }

Desarrollo de Portales -32Ing.Alberto Moreno C. else echo "$this->Nombre no se puede gastar esa cantidad
"; } // de la función Gasta } // de la clase $UnaPersona = new Persona; $UnaPersona->DaNombre("Santiago"); $UnaPersona->Ahorra(1000); $UnaPersona->Gasta(250); $UnaPersona->Ahorra(100); $UnaPersona->Gasta(1000); ?>

Otras características importantes son la herencia y la posibilidad de tener valores de parámetros por defecto. Ejemplo 11. <TITLE>Objetos en PHP Nombre = $varnombre; } function Ahorra($Cantidad) { $this->DineroAhorrado += $Cantidad; echo $this->Nombre, " tiene ahorrado ", $this->DineroAhorrado, "
\n"; } function Gasta($Cantidad)

Desarrollo de Portales

-33-

Ing.Alberto Moreno C.

{ if ($this->DineroAhorrado >= $Cantidad) { $this->DineroAhorrado -= $Cantidad; echo $this->Nombre, " tiene ahorrado ", $this->DineroAhorrado, "
\n"; } else echo $this->Nombre, " no puede gastar esa cantidad
\n"; } // de la función Gasta() } // de la clase Persona class Trabajador extends Persona { var $Sueldo=0; function Trabajador($varnom,$Paga=10000) { $this->Nombre = $varnom; $this->Sueldo = $Paga; $this->Ahorra(); } function Ahorra() { echo "Un trabajador ahorra todo su sueldo: "; $this->DineroAhorrado += $this->Sueldo; echo $this->Nombre, " tiene ahorrado ", $this->DineroAhorrado, "
\n"; } // de la función Ahorra() } // de la subclase Trabajador $UnaPersona = new Persona("Santiago"); $UnaPersona->Ahorra(1000); $UnaPersona->Gasta(250); $UnTrabajador = new Trabajador("Fernando",5000); $OtroTrabajador = new Trabajador("Pepe"); $UnTrabajador->Gasta(1000); ?> salida:

Desarrollo de Portales

-34-

Ing.Alberto Moreno C.

Arreglos o Matrices Una matriz es una serie de varibles agrupados con un nombre comín , cada uno se diferencia del otro mediante su indice: Ejem: $matriz[1]= Ana ; $matriz[2]= Jose Cada elemento es accesado por su indice <TITLE>Matrices en PHP "; echo "Posición uno: $MiArray[1]
"; ?>

ejemplo 8.- Calculo de la media de una matriz:



Desarrollo de Portales -35Ing.Alberto Moreno C. <TITLE>Cálculo de la media

Cálculo de la media


\n"; for ($i = 0; $i < count($matriz); $i++) { echo "
Elemento $i$matriz[$i]
\n"; } function media () { $limite = func_num_args(); $acumulado = 0; echo "\n"; echo "\n"; for ($i = 0; $i < $limite; $i++) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; $acumulado += func_get_arg($i); } echo "
Numero de argumentos: $limite
Parámetro $i", func_get_arg($i), "
\n"; listar(func_get_args()); return $acumulado/$limite; } $valor_media = media(12, 13, 15); echo "

Valor de la media: ", $valor_media, "

\n"; ?>
Nota.func_get_arg

Desarrollo de Portales

-36-

Ing.Alberto Moreno C.

(PHP 4 ) func_get_arg -- Devuelve un elemento de la lista de argumentos.

Int func_get_arg ( int arg_num)

Devuelve el argumento que está en la posición arg_num en la lista de argumentos de una función definida por el usuario. Los argumentos de la función se cuentan comenzando por la posición cero. func_get_arg() generará un aviso si se llama desde fuera de la definición de la función.

Uso del foreach Para leer un conjunto de datos de forma secuencial hasta detectar el final. <TITLE>Bucles

Lista de autores

Bucle clásico
\n"; for ($i = 0; $i < 3; $i++) { echo "Un autor de este libro se llama: $Nombres[$i]"; echo "
\n"; } echo "Bucle foreach
\n"; foreach ($Nombres as $autor) echo "Un autor de este libro se llama: $autor
\n"; ?>

Desarrollo de Portales

-37-

Ing.Alberto Moreno C.

ejemplo 10.. Cuando cada elemento de un arreglo tiene asociado otro elemento o indice llamdo clave:

<TITLE>Bucles

Lista de autores

'Javier', 'segundo' => 'Jorge', 'tercero' => 'Santiago'); echo "Bucle foreach
\n"; foreach ($Nombres as $clave => $autor) { echo "Un autor de este libro se llama: $autor\n"; echo " y su clave es $clave.
\n"; } ?>

Desarrollo de Portales Funciones

-38-

Ing.Alberto Moreno C.

El uso de funciones nos da la capacidad de agrupar varias instrucciones bajo un solo nombre y poder llamarlas a estas varias veces desde diferentes sitios, ahorrándonos la necesidad de escribirlas de nuevo. Opcionalmente podemos pasarle parámetros a las funciones que se trataran como variable locales y así mismo podemos devolver un resultado con la instrucción return valor; Esto produce la terminación de la función retornando un valor. Ejemplo de PHP "; echo media_aritmetica(3242,524543),"
"; ?>

Resultado 5 263892.5 Funciones con arreglos. "Blanco", "Nombre" => "Agustín", "Edad" => 15); function listar($matriz) {

Resultado:

Desarrollo de Portales

-39-

echo "\n"; while (list($clave, $valor) = each($matriz)) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo "
$clave$valor
\n"; } function frecuencia() { echo "\n"; $matriz2 = array_count_values(func_get_arg(0)); // Listar el contenido del array 2 while ($elemento = each($matriz2)) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo "
Clave: $elemento[0]Valor: $elemento[1]
\n"; } $func = 'listar'; $func($matriz); $func = 'ksort'; $func($matriz); $func = 'listar'; $func($matriz); $func = 'frecuencia'; $func($matriz); ?>

Funciones Fecha: Ejemplos:

Ing.Alberto Moreno C.

Desarrollo de Portales

-40-

Ing.Alberto Moreno C.

<TITLE>Cálculo de vencimientos

Cálculo de vencimientos


Importe
Entrada
Número de pagos
Primer Vencimiento (Formato mm/dd/yyyy)


Desarrollo de Portales

-41-

Ing.Alberto Moreno C.

Al enviar , primero va a validar los datos de ingreso antes de efectuar los calculos , el resultado sera:

Aunque el resultado se puede dar formatocon lo visto anteriormente <TITLE>Cálculo de Vencimientos \n"; echo "$texto\n"; if (empty($campo)) echo "Falta\n"; else echo "$campo\n"; echo "\n"; } // Primero se comprueba que los campos no estén vacíos. Si hay // alguno que no tiene datos, se muestra una página de error // que indica los campos que faltan por completar if ((empty($importe)) || (empty($entrada)) || (empty($numero_pagos)) || (empty($fecha1)) || (strtotime($fecha1) == -1)) { ?>

Faltan datos de entrada




Desarrollo de Portales

-42-

Ing.Alberto Moreno C.

Volver

Descripción de los vencimientos


\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; // Se escriben la filas de la tabla HTML con los valores // de cada uno de los pagos for ($i = 1; $i <= $numero_pagos; $i++) { // Se obtiene lo que falta por pagar $resto = $resto - $amortizacion; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } ?>
Número de pago Importe vencimiento Restante Fecha
Entrada$entrada$resto", strftime("%d/%b/%Y"), "
$i$amortizacion$resto", strftime("%d/%b/%Y", strtotime("$i months", $fecha_inicio)), "
Volver

Desarrollo de Portales

-43-

Ing.Alberto Moreno C.



Funciones Empleadas: int strtotime ( string hora [, int ahora]) La función espera que se le pase una cadena conteniendo una fecha en formato Inglés e intentará procesarla y convertirla a una timestamp (muestra de tiempo) de UNIX relativa a la timestamp proporcionada en ahora, o la hora actual si no se indica ninguna. Si falla, devolverá -1 string strtoupper ( string cadena) Devuelve la cadena con todas sus letras en mayúsculas. string strtolower ( string cad) Devuelve la cadena con todas sus letras en minúsculas. string ucfirst ( string cad) Pone en mayúsculas el primer carácter de cad si es alfabético. Descripción string date ( string format [, int timestamp]) Devuelve una cadena formateada de acuerdo con la cadena de formato dada, utilizando el valor de timestamp dado o la hora local actual si no hay parámetro. Se reconocen los siguientes caracteres en la cadena de formato: • • • • • • • • • • • • • • • • • • •

a - "am" o "pm" A - "AM" o "PM" d - día del mes, dos dígitos con cero a la izquierda; es decir, de "01" a "31" D - día de la semana, en texto, con tres letras; por ejemplo, "Fri" F - mes, en texto, completo; por ejemplo, "January" h - hora, de "01" a "12" H - hora, de "00" a "23" g - hour, sin ceros, de "1" a "12" G - hour, sin ceros; de "0" a "23" i - minutos; de "00" a "59" j - día del mes sin cero inicial; de "1" a "31" l ('L' minúscula) - día de la semana, en texto, completo; por ejemplo, "Friday" L - "1" or "0", según si el año es bisiesto o no m - mes; de "01" a "12" n - mes sin cero inicial; de "1" a "12" M - mes, en texto, 3 letras; por ejemplo, "Jan" s - segundos; de "00" a "59" S - sufijo ordinal en inglés, en texto, 2 caracteres; por ejemplo, "th", "nd" t - número de días del mes dado; de "28" a "31"

Desarrollo de Portales • • • • • •

-44-

Ing.Alberto Moreno C.

U - segundos desde el valor de 'epoch' w - día de la semana, en número, de "0" (domingo) a "6" (sábado) Y - año, cuatro cifras; por ejemplo, "1999" y - año, dos cifras; por ejemplo, "99" z - día del año; de "0" a "365" Z - diferencia horaria en segundos (de "-43200" a "43200")

Los caracteres no reconocidos se imprimen tal cual. El formato "Z" siempre devuelve "0" en la función gmdate()() Ejemplo 1. Ejemplo de date() print (date("l dS of F Y h:i:s A"));

print ("July 1, 2000 is on a " . date("l", mktime(0,0,0,7,1,2000))); Es posible usar date() y mktime() juntas para obtener fechas futuras o pasadas.

Ejemplo 2. Ejemplo de date() y mktime() $tomorrow = mktime(0,0,0,date("m") ,date("d")+1,date("Y")); $lastmonth = mktime(0,0,0,date("m")-1,date("d"), date("Y"));

$nextyear = mktime(0,0,0,date("m"), date("d"), date("Y")+1); Para dar formato a fechas en otros idiomas, se deben usar las funciones setlocale() y strftime(). Ejemplo: <TITLE>Ejemplo de getdate()

Ejemplo de getdate()

\n"; echo "$titulo\n"; foreach($matriz as $clave => $valor) { echo "\n"; echo "$clave\n"; echo "$valor\n"; echo "\n"; } echo "\n"; } // Se obtiene la hora del sistema $hora = getdate(); listar($hora, "Información de la hora del sistema"); ?>


Desarrollo de Portales

-45-

Ing.Alberto Moreno C.

Ejemplo2.- Pasando una lista crear un combo en tiempo de ejcucion: "; foreach($elementos as $valor) $combo .= ""; $combo.= ""; return($combo); } // Proceso Principal $a = array('AZUL','VERDE','ROJO','NEGRO','MARRON'); $b = array('Administracion','Contabilidad','Computacion'); $c= array(23,45,67,45,45,78,8,34,57,32,23,43,12,123,234); echo CreaCombo("cboPRO", $a)."
"; echo CreaCombo("cboCAR", $b); echo CreaCombo("cbopre", $c); ?>

Desarrollo de Portales

-46-

Ing.Alberto Moreno C.

Ejemplo3.- Elaboración de Una Factura simple , los valores de entrada se conservan después de una ida y vuelta al servidor.

FACTURA



Desarrollo de Portales

-47-

Ing.Alberto Moreno C.

<strong>PRODUCTO
<strong>CANTIDAD
<strong>PRECIO
<strong>SUB-TOTAL
> > > >
> > > >
<strong>SUB-TOTAL >
<strong>IGV >
<strong>TOTAL >


Desarrollo de Portales

-48-

Ing.Alberto Moreno C.

Como ahorramos líneas de código (Inclusión de archivos php) En las lecciones anteriores hemos aprendido el uso básico de las funciones de PHP para trabajar con MySQL. En esta lección y sucesivas vamos a ver nuevas funciones que nos facilitan y potencian nuestras páginas web. Por lo general, todos nuestros script tienen partes de código iguales, las funciones include( ) y require( ) nos van ahorrar muchas de estas líneas de código. Ambas funciones hacen una llamada a un determinado fichero pero de dos maneras diferentes, con include( ), insertamos lo que contenga el fichero que llamemos de manera literal en nuestro script, mientras que con require( ), que decimos que el script necesitará parte de código que se encuentra en el fichero que llama require( ). Como todo esto es un poco lioso, veamos unos ejemplos que nos lo aclara. Si tenemos en cuenta que el fichero header.inc contiene: y el fichero footer.inc contiene: Nuestro script sería equivalente a: Ahora veamos el script de ejemplo para la función require( ): Donde el fichero config.inc tendría algo como ésto:

Librería

Desarrollo de Portales

-49-

Ing.Alberto Moreno C.

El uso de librerías es tremendamente útil, nos permiten agrupar varias funciones y variables en un mismo fichero, de manera que luego podemos incluir esta librería en distintas páginas y disponer de esas funciones fácilmente. Esta cabecera estará en todas sus páginas.


Este es el pie de página.
Ahora vamos a crear 2 páginas que usan la librería definida anteriormente para conseguir que las dos paginas tengan la misma cabecera y pie de pagina. La instrucción para incluir una librería en nuestra página es include("nombre de librería") Ejemplo de PHP Página 1




Contenido blalbl blalb alb

más cosas...

fin



Ejemplo de PHP

Desarrollo de Portales

-50-

Ing.Alberto Moreno C.

Esta es otra página

completamente distinta

pero comparte el pie y la cabecera con la otra.

Esta cabecera estará en todas sus páginas. Esta es otra página completamente distinta pero comparte el pie y la cabecera con la otra.

Envío y recepción de datos El lenguaje PHP nos proporciona una manera sencilla de manejar formularios, permitiéndonos de esta manera procesar la información que el usuario ha introducido. Al diseñar un formulario debemos indicar la página PHP que procesará el formulario, así como en método por el que se le pasará la información a la página. Ejemplo de PHP

Ejemplo de procesado de formularios

Introduzca su nombre:

Al pulsar el botón Enviar el contenido de cuadro de texto es enviado a la página que indicamos en el atributo ACTION de la etiqueta FORM. PHP crea una variable por cada elemento del FORM, esta variable creada tiene el mismo nombre que el cuadro de texto de la página anterior y el valor que hayamos introducido. En este ejemplo se ha creado una variable llamada $nombre con el valor que haya introducido el navegante. Ejemplo de PHP

Desarrollo de Portales

-51-

Ing.Alberto Moreno C.

Ejemplo de procesado de formularios

El nombre que ha introducido es:


PRACTICA NRO 2 1.- Elaborar las siguientes funciones(colocarlos en un modulo) a) Pasando dos fechas que devuelva la cantidad de días que hay entres amabas fechas b) Pasando dos horas que devuelva la cantidad de minutos c) Pasando el una fecha con el formato dd/mm/aa que lo devuelva en el formato mm/dd/aa d) Pasando una fecha que devuelva la fecha en letras: Por ejemplo si es 19/07/06 debe devolver jueves 19 de julio del 2006 e) Pasando una Fecha que devuelva los días que faltan para terminar el año f) Pasando un conjunto de números de cantidad indeterminada(debe ser mas de 5) , que muestre el promedio de dichos números eliminando los dos números de menor magnitud. 2.- Ingrese un conjunto de valores en una caja de texto , luego en php realizar las funciones para determinar: a) el valor máximo b) El valor mínimo c) La suma de los elementos d) Su promedio e) Mostrar los datos ordenados 3.- Una compañía desea pronosticar sus ventas respecto a un año, ya que las ventas son variables se van a generar con valores aleatorios de 500 6000, las ventas que son mayores al promedio en valor de 200 colocar un incono (carita feliz) y pintar las ventas con color azul, si esta en el rango del promedio (+)( -) 200 colocar otro icono como se muestra en la figura y el color de letra negro, si es menor al promedio en menos de doscientos mostrar con color rojo e icono (carita triste).

Desarrollo de Portales

-52-

Ing.Alberto Moreno C.

4.-crear una pagina para la venta de DVD ,Mostrar en una lista desplegables con una lista de videos (*.avi, *.mpg) al seleccionar un video será mostrado el video seleccionado , con una descripción pequeña del video. (debe emplear una clase luego adaptarlo con códigos en php) 5.- realizar una pagina en php para envió de postales , Ud. Puede seleccionar otras imágenes , primero se mostrara una pagina HTM para seleccionar el fondo , la imagen y el mensaje respectivo la pagina PHP compondrá la postal :

Desarrollo de Portales

-53-

Ing.Alberto Moreno C.

la pagina Postal.php va recibir las opciones elegidas. 5.- Empleando funciones realizar una pagina para convertir números a letras para ello se ingresa un valor numérico máximo de 6 dígitos. 6.- Unir las paginas con un menú principal.

Desarrollo de Portales

-54-

Ing.Alberto Moreno C.

Ejercicios resueltos 1.- empleando arreglos , en una matriz colocar una lista de personas por cada país luego al seleccionar un país que muestre las personas solo de ese país

sELECCION

Seleccione Pais : <select name="cbopais" onChange="form1.submit()">

Desarrollo de Portales -55Ing.Alberto Moreno C. $pais[$i]"; }else{ echo ""; } } ?>

"; echo ""; echo ""; echo ""; echo ""; } } ?>
<strong>Codigo <strong>Nombre <strong>Pais
$valor[0]$valor[1]$valor[2]


2.- para si un valor esta vacio .

Desarrollo de Portales

-56-

Ing.Alberto Moreno C.

>

uso de empty

ingrese numero

 



Desarrollo de Portales

-57-

Ing.Alberto Moreno C.

3.- Seleccionar una lista de Artefacto mediante los checkbox en tiempo de ejecución y al seleccionar uno o varios va mostrar en otra pagina los artefactos seleccionados:

MANEJO DE WHILE LIST EACH
"; $check="$producto[$i]"; echo "

Desarrollo de Portales
<strong>Imagen <strong>Artefacto <strong>precio
$foto $check $precio[$i]"; } ?>


-58-

Ing.Alberto Moreno C.

CARRITO.PHP

MANEJO DE WHILE LIST EACH

Desarrollo de Portales -59Ing.Alberto Moreno C. $foto=""; $check="$producto[$i]"; echo "
<strong>Imagen <strong>Artefacto <strong>precio
$foto $check $precio[$i]"; } ?>


4.- Empleando una funcion que permita similar un combo luego al seleccionar un curso que afecte al otro combo( lista de cursos)


{ $cad="<select name=$nom onchange='submit();'>"; for($a=0;$a
Desarrollo de Portales { if($sel==$arr[$a]) $cad=$cad ."

More Documents from "Alberto Moreno Cueva"