tutorial de php

167
Tutorial de PHP El objetivo de este tutorial de php es brindar los conocimientos necesarios para la programación en php comenzando desde cero. Instalación de Apache y PHP Generalidades del lenguaje PHP Estructuras Condicionales Formularios en PHP Controles Visuales en Formularios Estructuras Repetitivas Funciones en PHP Funciones útiles predefinidas en PHP Arreglos en PHP Funciones para utilizar con Arreglos Procesamiento de Cadenas Administracion de Archivos Administración de Base de Datos Apache y Php - Instalación (1-2) Apache es un servidor que ofrece una alta estabilidad, seguridad y facilidad de expansión, ya que su código está disponible, y es totalmente libre. La descarga del software se la puede realizar de la dirección www.apache.org. Existen en la actualidad diversos programas que facilitan la instalación del servidor Apache. Uno de ellos es el paquete Wamp5 que incluye al Servidor Apache conjuntamente con los software PHP, MySql, PHPMyAdmin y una interface para la barra de herramientas. Al instalar este paquete, se instalan todos los programas mencionados anteriormente y además, ya configurados para que funcionen todos relacionados entre sí. Los pasos para instalar el paquete Wamp son los siguientes:

Upload: hel-monteza-vargas

Post on 06-Aug-2015

116 views

Category:

Documents


3 download

DESCRIPTION

Una gran ayuda para inciar con el PHP

TRANSCRIPT

Page 1: Tutorial de PHP

Tutorial de PHP

El objetivo de este tutorial de php es brindar los

conocimientos necesarios para la programación en php

comenzando desde cero.

   

   Instalación de Apache y PHP   Generalidades del lenguaje PHP   Estructuras Condicionales   Formularios en PHP   Controles Visuales en Formularios   Estructuras Repetitivas   Funciones en PHP   Funciones útiles predefinidas en PHP   Arreglos en PHP   Funciones para utilizar con Arreglos   Procesamiento de Cadenas   Administracion de Archivos    Administración de Base de Datos

Apache y Php - Instalación (1-2)

Apache es un servidor que ofrece una alta estabilidad, seguridad y facilidad de expansión, ya que su código está disponible, y es totalmente libre. La descarga del software se la puede realizar de la dirección www.apache.org.

Existen en la actualidad diversos programas que facilitan la instalación del servidor Apache. Uno de ellos es el paquete Wamp5 que incluye al Servidor Apache conjuntamente con los software PHP, MySql, PHPMyAdmin y una interface para la barra de herramientas.

Al instalar este paquete, se instalan todos los programas mencionados anteriormente y además, ya configurados para que funcionen todos relacionados entre sí.

Los pasos para instalar el paquete Wamp son los siguientes:

1. Descargar el soft Wamp de la dirección: http://www.wampserver.com/download.php

2. Instalar la aplicación. Para ello, ejecutar el programa wamp5_1.7.0.exe o superior. Aparecerá la siguiente pantalla:

Page 2: Tutorial de PHP

3. Pulsar en el botón [Next] para continuar. 4. Aceptar la Licencia para continuar con la instalación y pulsar nuevamente en el

botón [Next].

Apache y Php - Instalación (2-2)

5. Seleccionar el destino de Instalación. Se puede variar el destino por defecto que coloca el soft, simplemente colocando el nuevo destino en el campo de ingreso o seleccionándolo al

Page 3: Tutorial de PHP

pulsar el botón [Browse…]. Luego de seleccionar el destino, pulsar nuevamente el botón [Next].

6. Seleccionar el nombre de la carpeta que se creará en el menú de inicio, con los accesos directos a "start Wampserver" y "uninstall Wampserver" . Luego presionar el botón [Next] para continuar.

Page 4: Tutorial de PHP

7. A continuación, pregunta si se quiere que se ejecuten los programas al encender el ordenador o si se lo quiere encender manualmente. Para ejecutarlo automáticamente, tildar en la casilla, de lo contrario, dejarla inactiva. Pulsar en el botón [Next] y luego en el botón [Install] para comenzar la instalación.

8. Al finalizar la instalación, seleccionar la casilla "Launch WAMP5 now" para terminar.

A partir de este momento, en la barra de notificaciones aparecerá el icono de Wamp5   , si se presiona en él, aparecerá una serie de alternativas.Ahora ya se pueden probar páginas realizadas en PHP, para ello, se deben alojar las páginas creadas en PHP en la carpeta: C:\wamp\www\ . Luego entrar en Internet Explorer u otro navegador y colocar: http://Localhost para visualizar el índice de Wamp5. De aquí se deberán ejecutar las páginas.

A medida que se almacenen páginas en la carpeta C:\wamp\www\, irán apareciendo en la página índice, las cuales se las puede seleccionar y abrir directamente desde este índice.

Generalidades del Lenguaje PHP (1-4)

La sintaxis de PHP está basada en el lenguaje C, por lo tanto es un lenguaje sensible a las mayúsculas y minúsculas. Las palabras claves y funciones del lenguaje se escriben con minúsculas. Las constantes y variables predefinidas se escriben con mayúsculas.Los nombres de variables comienzan con el signo $ y cada instrucción termina con un punto y coma. Los comentarios pueden realizarse con doble barra // para líneas independientes, o encerrarse entre las etiquetas /* y */ para todo un bloque de programa. El código de este lenguaje debe ser inscripto en el de html. Para indicar que comienza php se utiliza la etiqueta <?PHP, y para indicar que termina php se utiliza ?>.

Primer Ejemplo: Hola Mundo PHP (Ejemplo1.php)

<Html><Body>  <?PHP       echo "Hola Mundo PHP ";               ?></Html></Body>

Para probar este ejemplo, se debe generar una carpeta en el disco C, en la dirección C:\wamp\www.Si la carpeta generada se llama por ejemplo Prueba, quedaría:

Page 5: Tutorial de PHP

C:\wamp\www\Prueba. En esta carpeta se deberían grabar todos los ejemplos y ejercicios que se desarrollen, en este caso el Ejemplo1.php. Para llamar a los ejemplos, se debe ejecutar el programa Wampserver y acceder al Internet Explorer u otro navegador. Luego colocar Localhost y se abrirá la página de presentación de Wamp5, en donde se encontrará la carpeta creada Prueba. Realizar un click en ella y luego en el ejemplo grabado para ejecutarlo.

Las cadenas se escriben entre comillas y se concatenan con el operador punto.

Ejemplo:

$Nombre = "Sebastián";$Apellido = "González";$NA = $Nombre  ." ". $Apellido;

En la variable $NA queda almacenado: Sebastián González.

Generalidades del Lenguaje PHP (2-4)

Variables

Se define a una variable, como el espacio físico habilitado para almacenar un dato. En php no es necesario definir el tipo con anterioridad a utilizarla, las mismas se crean en el momento de emplearlas. A las variables, se las identifica con un nombre, anteponiéndole el signo $, y se declaran cuando se le asigna un valor, por ejemplo:

$dia = 24;    Se declaró una variable de tipo Integer.$Sueldo = 758.43 ;   Se declaró una variable  de tipo Double.$Codigo = "0047352";   Se declaró una variable de tipo String. (Cadena de caracteres)$Profesion = "Arquitecto";  Variable String.

Para mostrar un dato o el contenido de una variable se utiliza la instrucción echo o print . 

Ejemplo:

$Profesion = "Arquitecto";echo "Marcelo";echo "–" . "Profesión: " . $Profesion;

También se podría haber escrito:

print "Marcelo";print "–" . "Profesión: " . $Profesion;

reemplazando la instrucción echo por print.

Page 6: Tutorial de PHP

En ambos casos mostrará: 

Marcelo – Profesión: Arquitecto

Operadores

Los operadores en PHP pueden ser Aritméticos, de Comparación y Lógicos. Estos operadores son los mismos que los utilizados en C y JavaScript, y a continuación se detallan:

Operadores Aritméticos

Este tipo de operadores se utiliza para realizar cálculos matemáticos, los mas utilizados son:

DescripciónSímbolo

Suma +Resta – Multiplicación *División /Resto de División Entera %Incremento ++Decremento –– Operadores de Comparación                     

Se utilizan en el análisis de expresiones para las funciones if() o while(), los mas utilizados son:

DescripciónSimbología Comentario

Igualdad ($a = = $b ) Verdadero, si $a es igual a $b.

Identidad ($a = = = $b )Verdadero, si $a es igual a $b y además si los tipos son iguales.

Desigualdad ( $a != $b ) Verdadero, si $a es distinto de $b.Menor que ( $a < $b ) Verdadero, si $a es menor que $b.Mayor que ( $a > $b ) Verdadero, si $a es mayor que $b.Menor o igual ( $a <= $b ) Verdadero, si $a es menor o igual  a $b.Mayor o igual ( $a >= $b ) Verdadero, si $a es mayor o igual  a $b.

Operadores Lógicos

 

Page 7: Tutorial de PHP

Se utilizan para analizar mas de una expresión a la vez.

Descripción SímboloNegación !

Y &&O ll

Generalidades del Lenguaje PHP (3-4)

Ejemplo Práctico :

Crear una página que muestre las características principales de php.<Html><Body> <?PHP echo "Esta es mi primera pagina en PHP"; echo "<Br>"; echo "Las Características de PHP son las siguinentes: "; echo phpinfo(); ?></Body></Html>

La tercera línea, indica que comienza la sección de código en PHP.La cuarta y la sexta, imprimen simplemente las leyendas indicadas. La quinta línea, se utiliza para saltar a la siguiente línea. (Br  pertenece a Html).La línea 7, llama a una función propia de PHP, la cual tiene por objeto mostrar las características del lenguaje.Por último la línea 8, cierra la sección de PHP y continúa con Html.La pantalla a visualizar será similar a la siguiente:

Page 8: Tutorial de PHP

Las cadenas pueden estar encerradas entre comillas simples o dobles. Cuando una frase encerrada entre comillas dobles contiene una variable en su interior, esta se trata como tal, por lo tanto se utilizará su contenido para el almacenamiento.

Ejemplo:

$dia = 21;$fecha = "Hoy es $dia de Septiembre";Es este caso se almacenará en la variable $fecha:  Hoy es 21 de Setiembre.

Si una variable se encuentra dentro de una cadena encerrada entre comillas simples (o apóstrofes), la misma pierde el carácter de variable y se convierte en elemento de la cadena.Si en el ejemplo anterior la línea hubiera sido con comilla simple:$fecha =  'Hoy es $dia de Setiembre';La variable $fecha contendría : Hoy es $dia de Setiembre.

Como se dijo anteriormente, la concatenación de cadenas se realiza con un punto, no está permitido usar el signo mas (+) para adicionar cadenas.

Ejemplo:

$estacion = "Primavera";$plantas = "Flores";$frase = "En la " . $estacion . " crecen las " . $plantas;

En la variable $frase quedará almacenado: En la Primavera crecen las Flores.

Page 9: Tutorial de PHP

Se puede además, acceder a un carácter cualquiera de la cadena por medio de su índice de posición. Por ejemplo para el primer carácter de la variable $frase se puede realizar:  $primer = $frase[0];Para el quinto carácter :   $quinto = $frase[4];Y para el último :   $ultimo = $frase[srtlen($frase)-1];Notar que el primer caracter de una cadena es el elemento cero. El último se logra utilizando la función strlen(), que devuelve la cantidad de caracteres de la frase.

Generalidades del Lenguaje PHP (4-4)

Constantes

Una constante, es aquella que mantiene su valor inalterable durante todo el programa. Generalmente las constantes se escriben con mayúsculas.Para definir constantes se utilizan la función define(), cuyo formato es :

define ("Nombre de la Constante", "Dato a almacenar");

Ejemplos:

define ("PAIS","Argentina");define ("COLOR","#FF0000");echo " Nación: " . PAIS;echo " <Font color = " . COLOR . ">";

Solo se pueden definir constantes de los tipos : boolean, integer, double y string.

Ejemplo Práctico: Desarrollar una página con los datos personales en color azul.

<Html><Title>   Archivo Ej2.php> </Title><Body><?PHP  echo "<H2>";  echo "Datos Personales <Br>";  echo "<Hr>";  define ("COLOR","#0000FF");  $nombre = "Perez Juan";  $direccion = "Colón 1536";  $Profesion = "Web Master";  echo "<Font color= " . COLOR . ">";

Page 10: Tutorial de PHP

  echo "Apellido y Nombre: $nombre <Br>";  echo "Domicilio : $direccion <Br>";  echo "Profesión: $Profesion <Br>";?></Body></Html>

Estructuras Condicionales en PHP (1-3)

Estructura: if

Cuando se pretende que el programa, una vez llegado a un cierto punto, tome un camino concreto en determinados casos y otro diferente si las condiciones de ejecución difieren, se utiliza el conjunto de instrucciones: if, else y elseif.

La estructura base de este tipo de instrucciones es la siguiente:

if (Condicion) { Instrucción 1; Instrucción 2; : } else { Instrucción A; Instrucción B; : }

Cuando la ejecución llega al punto donde se encuentra la instrucción if, el programa verificará el cumplimiento o no de la condición. Si la condición es verdadera se ejecutarán las instrucciones 1 y 2, de lo contrario, se ejecutarán las instrucciones A y B. En los casos en que las condiciones sean varias, se pueden utilizar los if de un modo denominado anidado o anillado, como se indica de la manera siguiente:

if (Condicion 1) { Instrucción 1; Instrucción 2; : } else if (Condicion 2) { Instrucción A;

Page 11: Tutorial de PHP

Instrucción B; : } else { Instrucción X; Instrucción Z; : }

De este modo se pueden introducir tantas condiciones como se quiera dentro de la condición principal. Una variante de este sistema es utilizando la sentencia elseif, que permite en una sola línea introducir una condición adicional:

if (Condicion 1)    {     Instrucción 1;     Instrucción 2;          :   }   elseif (Condicion 2)   {     Instrucción A;     Instrucción B;          :   }   else    {      Instrucción X;      Instrucción Z;            :         }         

Estructuras Condicionales en PHP (2-3)

Ejemplo Práctico:

Mostrar en una página el idioma con el cual se está trabajando.

<HTML><HEAD><TITLE>Detector de Lengua</TITLE></HEAD><BODY><?PHP  

Page 12: Tutorial de PHP

//Leer del navegador cuál es su lengua oficial $idioma=substr($HTTP_ACCEPT_LANGUAGE,0,2);

 //Formular las posibilidades que se pueden dar if ($idioma == "es")  echo "Idioma Español";   elseif ($idioma == "fr")     echo "Idioma Frances";       else         echo "Idioma Ingles";?></BODY></HTML>

En este ejemplo se hace uso de la variable de servidor $HTTP_ACCEPT_LANGUAGE. De esta variable se rescatan los dos primeros caracteres, esto se logra con la función substr().

Los dos caracteres del lenguaje almacenados en la variable $idioma son comparados con las constantes "es" y "fr". En caso de coincidencia se mostrará la leyenda correspondiente de lo contrario se muestra Idioma Ingles. Notar que en estas líneas, los condicionales if y elseif, no llevan llaves en su interior, esto es debido a que si una condición involucra a una sola sentencia, no son necesarias las llaves. En este caso, cada if contiene una sola sentencia, por lo tanto no se colocaron las llaves.

Estructuras Condicionales en PHP (3-3)

Sentencia Switch

En algunos casos es necesario comparar a una variable con varias opciones posibles. Esto, sin ningún problema se puede realizar con una serie de estructuras  if, uno debajo del otro, pero resulta mas práctico utilizar la instrucción switch. La estructura de la instrucción switch es la siguiente:

switch ($opcion) { case primerValor : Instrucción 1; break ; case segundoValor : Instrucción 2; break ; : case ultimoValor : Instrucción n; break ; default: Instrucciones; }

En este caso, si la variable $opcion tiene almacenado el dato: primerValor, se ejecutará la Instrucción 1, si tiene almacenado el dato: segundoValor se ejecutará la Instrucción 2 y así sucesivamente. Si la variable $opcion no contiene ningunos de los valores predefinidos, se ejecutarán las

Page 13: Tutorial de PHP

Instrucciones situadas después de la palabra default.La palabra clave break, es necesaria colocarla en cada opcion, porque de no ser así, se ejecutaran todas las Instrucciones de los demás case, sin verificarse los valores que toma la variable.

Ejemplo Práctico:                         Permitir seleccionar el número de mes en un objeto select y mostrar el nombre del mes que le corresponde.

<Html><Title> Ejemplo del switch: Ej3.php </Title> <Body>  <?PHP    if ($_REQUEST[boton] != "" )     {       $N = $_REQUEST[Numero];        echo "<H2>";       echo "Coresponde a:  ";       switch ($N)         { 

           case 1: echo "Enero"; break;           case 2: echo "Febreo"; break;           case 3: echo "Marzo"; break;           case 4: echo "Abril"; break;           case 5: echo "Mayo"; break;           case 6: echo "Junio"; break;           case 7: echo "Julio"; break;           case 8: echo "Agosto"; break;           case 9: echo "Septiembre"; break;           case 10: echo "Octubre"; break;           case 11: echo "Noviembre"; break;           case 12: echo "Diciembre"; break;

        }      }     else     {  ?>  <H2>  <FORM ACTION="Ej3.php" METHOD="POST">  Nombre del Mes   <Hr>  <Table Border="0" width="100%">    <tr>       <td width="40%">

Page 14: Tutorial de PHP

       <p align="Center"> Ingrese el Número de Mes : </td>       <td witth="60%"> <Select size=1 Name="Numero">       <option value= "1">  1 </option>          <option value= "2">  2 </option>          <option value= "3">  3 </option>          <option value= "4">  4 </option>          <option value= "5">  5 </option>          <option value= "6">  6 </option>          <option value= "7">  7 </option>          <option value= "8">  8 </option>          <option value= "9">  9 </option>          <option value="10"> 10 </option>          <option value="11"> 11 </option>          <option value="12"> 12 </option>          </Select> </td>    </tr>    <tr>       <td>        <p align="Center">        <Input type="Submit" Name="boton" value="Ver Resultado">        </td>    </tr>  </Table>         <?PHP     }  ?></Body></Html> 

Ambito de una variable

El ámbito de una variable, es la sección en la cual la variable tiene validez. Por ejemplo, una variable definida dentro de una función tiene validez, solo dentro de esa función y no puede usarse fuera de esa función. Si una variable tiene el mismo nombre en el cuerpo del programa principal y dentro de una función, en esta función, prevalecerá el valor definido en la misma y no el valor global.

Ejemplo Páctico:

<Htm><Body><?PHP  $N = 10; // Variable Global con valor 10  function Mostrar()   {     $N = 5; // Variable Local con valor 5

Page 15: Tutorial de PHP

     echo ("Aqui, dentro de la funcion, la variable      N tiene el valor de: $N");   }  Mostrar();  echo "<Br>";  echo ("Aqui, fuera de la funcion, la variable N tiene el valor de: $N");?></Body></Htm>

Formularios en PHP (1-3)

El mecanismo básico de interacción entre el usuario y un sitio web está dado por el uso de formularios html. El server envía el formulario que el browser (navegador) muestra en pantalla permitiendo al usuario ingresar los datos, luego estos datos viajan al servidor para ser procesados en el mismo.El siguiente ejemplo muestra un formulario en html que contiene un campo editor tipo Text llamado Apellido y un botón cuyo rótulo es Ejecutar..

<FORM ACTION = "Proceso.php" METHOD = "POST"><INPUT TYPE = "TEXT" NAME="Apellido"><INPUT TYPE = "SUBMIT" NAME="Boton" VALUE="Ejecutar"></FORM>

Una vez que se ingresa el texto en el campo editor y presionado el botón Ejecutar, el browser (navegador) genera un request (petición o llamado) con método Post al script "Proceso.php", que es el programa encargado de procesar los datos ingresados.Dentro del script "Proceso.php", los datos del formulario se reciben en variables que tienen el mismo nombre que los indicados con NAME en el formulario.

En PHP es posible que un Form se procese a si mismo, esto se puede hacer de la siguiente manera:

Ejemplo Práctico : Fichero Form1.php

<Htm><Body><?PHP   if ($_REQUEST[Boton] != "" )    {     echo "El apellido Ingresado es : $_REQUEST[Apellido]";    }    else   { ?>   <FORM ACTION = "Form1.php" METHOD = "POST">   <INPUT TYPE = "TEXT" NAME="Apellido">

Page 16: Tutorial de PHP

   <INPUT TYPE = "SUBMIT" NAME="Boton" VALUE="Ejecutar">   </FORM> <?PHP   } ?></Body></Htm>

Formularios en PHP (2-3)

Observar que el nombre con que fue grabado el script (Form1.php),  es el que debe llevar FORM ACTION, para que pueda ser procesado.

La instrucción $_REQUEST[Boton]  de PHP, devuelve el contenido que tiene el botón SUBMIT, que en caso de ejecutarse por primera vez la página, no contendrá ningún valor.  Por lo tanto se mostrará el formulario (el campo Text con el Botón), porque la condición del  if  es Falsa. Una vez ingresado el texto y presionado el Botón, la instrucción $_REQUEST[Boton] tendrá un valor y la condición dentro del if será verdadera, ya que será distinto de nada ("").La línea siguiente, imprime la leyenda: El Apellido Ingresado es: conjuntamente con lo rescatado por: $_REQUEST[Apellido], que contiene el dato del Apellido ingresado.   En definitiva, la instrucción  $_REQUEST  se utiliza para capturar el contenido de los objetos descriptos en el formulario.

El pasaje de los valores del formulario se puede realizar por dos métodos distintos, que son METHOD = "GET"  y  METHOD = "POST".

Page 17: Tutorial de PHP

Cuando se utiliza el método GET, todos los valores son pasados en la URL del navegador y pueden ser observados en la misma.Al utilizar el método POST los valores son enviados por la entrada estándar STDIO y no son visibles en la URL del navegador.

Ejemplo Práctico: Ingresar por medio de un formulario el nombre de un producto y el peso que le corresponde. Posteriormente mostrar las leyendas según los siguientes puntos:

Si el peso es menor o igual a 10, mostrar "Peso Deficiente". Si el peso es mayor a 10 y menor o igual a $20, mostrar "Peso Normal". Si el peso es mayor a 20, mostrar "Excedido de Peso"

<Html><Body> <?PHP   if ( $_REQUEST[boton] != "" )    {      if ($_REQUEST[Peso]<=10)        echo "Peso Deficiente";        elseif ($_REQUEST[Peso]>10 && $_REQUEST[Peso]<=20)          echo "Peso Normal";          else            echo "Excedido de Peso";   }   else   { ?> <FORM ACTION="Form2.php" METHOD="POST"> Nombre: <INPUT TYPE="TEXT" NAME="Nombre" size="25"> <Br> Peso: <INPUT TYPE="TEXT" NAME="Peso" size="10"> <Br> <INPUT TYPE="SUBMIT" NAME="boton" VALUE="Ingresar Datos"> </FORM> <?PHP   } ?></Body></Html>

Nota: Tener en cuenta que para que el programa funcione correctamente, debe ser grabado como Form2.php, ya que ese es el nombre que se dio en el FORM ACTION.En muchos casos se debe tener la seguridad de que el usuario halla ingresado los datos al presionar el botón de entrada, para ello se debe comprobar que los campos estén completos. Hay varias formas de realizar esto, lo mas sencillo es disponer de dos formularios, uno para el ingreso de los datos y el otro para mostrar una leyenda (indicando que falta completar los datos) y un botón para retornar al formulario de ingreso de datos, como se muestra en el siguiente ejemplo.

Page 18: Tutorial de PHP

Formularios en PHP (3-3)

Ejemplo Práctico:

Permitir el ingreso de los datos de una persona (Nombre, Dni y Sueldo), teniendo en cuenta que el Nombre y el Dni deben ser obligatorios. Si faltara alguno de ellos volver al formulario de ingreso.Si los campos están completos, procesar el sueldo de la siguiente manera, si es mayor a 2000, mostrar la leyenda "Sueldo Eficiente", de lo contrario mostrar  "Sueldo Ineficiente". Observar la presentación: 

<Html><TITLE>  Form3.php  </TITLE><Body> <?PHP   if ( $_REQUEST[boton1] !="" )    {      $Nombre = $_REQUEST[Nombre];      $Dni    = $_REQUEST[Dni];      $Sueldo = $_REQUEST[Sueldo];

Page 19: Tutorial de PHP

      if ($Nombre=="" || $Dni=="" )       {         echo "<H3>";         echo "Falta ingresar algún dato <Br>";         echo "Los datos marcados con (*) son obligatorios<Br>";         echo "Pulse el boton para volver al formulario de Ingreso<Br>";         ?>           <FORM ACTION="Form3.php" METHOD="POST">           <INPUT TYPE="SUBMIT" NAME="boton2" VALUE="Volver">         <?PHP       }                               else       {         // Procesar de los datos         echo "<H2>";         if ($Sueldo>2000)            echo "$Nombre tiene un Sueldo Eficiente";            else            echo "$Nombre tiene un Sueldo Ineficiente";

       }    }   else   {  ?>  <H2>  Formulario de Ingreso de Datos  <Hr>  <FORM ACTION="Form3.php" METHOD="POST">  (*)Nombre: <INPUT TYPE="TEXT" NAME="Nombre" size="25">  <Br>  (*)DNI: <INPUT TYPE="TEXT" NAME="Dni" size="20">  <Br>  Sueldo: <INPUT TYPE="TEXT" NAME="Sueldo" size="15">  <Br><Br>  Los campos marcados con (*) son obligatorios.  <Br><Br>  <INPUT TYPE="SUBMIT" NAME="boton1" VALUE="Ingresar Datos">  </FORM>  <?PHP   } ?></Body></Html>

Page 20: Tutorial de PHP

Comentario : Al comienzo del programa se pregunta si la instrucción $_REQUEST[boton] tiene asignado algún valor, en este caso, por ser la primera vez que se ejecuta esta página, será falso, por lo tanto el programa se transfiere al else del if, mostrando el formulario de carga de datos. Una vez ingresado los datos y presionado el botón1, la página se llama a sí misma y la pregunta inicial será verdadera, ya que la instrucción $_REQUEST[boton] tendrá ahora asignado un valor. Se continúa con la asignación a cada una de las variables de los respectivos campos y comprobando que los campos estén completos, esto se logra utilizando la línea:                if ($Nombre=="" || $Dni=="" ) la cual verifica si el nombre o el dni no contienen datos. De ser así, se envía una leyenda indicando tal situación y que deben completarse, luego se realiza un pequeño formulario que llama a la misma página y que contiene un botón únicamente. Al presionarse el botón2, se ejecuta nuevamente la página desde el principio realizándose la pregunta inicial.Si la pregunta inicial es verdadera y los campos están completos, el programa se transfiere a procesar los datos ingresados, en este caso, se utiliza únicamente el sueldo, emitiendo las leyendas correspondientes, de acuerdo al enunciado del problema.

Controles Visuales en Formularios (1-7)

Control Radio

            Estos tipos de controles permiten la selección de un único valor.

Ejemplo Práctico: Desarrollar un programa que permita en el servidor realizar la suma, resta, multiplicación o división de dos enteros.

Pantalla solicitada:

Page 21: Tutorial de PHP

Proceso: Incluir los dos text para la carga de los dos enteros, cuatro controles de tipo radio para permitir la selección de la operación y el botón submit para el envío de los datos al servidor.

Implementación (Radio.htm):

<html><head></head><body><form name="form1" method="post" action="Radio.php">Ingrese primer valor:<input type="text" name="text1"><br>Ingrese segundo valor:<input type="text" name="text2"><br><input type="radio" name="radio1" value="sumar">Sumar<br><input type="radio" name="radio1" value="restar">Restar<br>

Page 22: Tutorial de PHP

<input type="radio" name="radio1" value="multiplicar">Multiplicar<br><input type="radio" name="radio1" value="dividir">Dividir<br><input type="submit" name="boton1" value="operar"></form></body></html>

Explicación:

En el formulario los controles de tipo radio se definen:

<input type="radio" name="radio1" value="sumar"><input type="radio" name="radio1" value="restar">etc.Lo importante es notar que todos los objetos de tipo radio tienen el mismo nombre, con ello se indica que cuando el operador selecciona uno, se debe desmarcar el seleccionado actualmente.

Si queremos que uno de los radios comience seleccionado, al mismo, le agregamos la palabra checked:<input type="radio" name="radio1" value="sumar" checked>

Controles Visuales en Formularios (2-7)

Página que efectua las operaciones (Radio.php)

Verificar que radio ha sido seleccionado y realizar la operación correspondiente. Mostrar el resultado en otra página.

Procesos: Con una serie de condiciones verificar que operación realizar.

Implementación (Radio.php):

<html><head></head><body><?phpif ($_REQUEST['radio1']=="sumar")       $resultado=$_REQUEST['text1']+$_REQUEST['text2'];

Page 23: Tutorial de PHP

if ($_REQUEST['radio1']=="restar")       $resultado=$_REQUEST['text1']-$_REQUEST['text2'];

if ($_REQUEST['radio1']=="multiplicar")       $resultado=$_REQUEST['text1']*$_REQUEST['text2'];

if ($_REQUEST['radio1']=="dividir")       $resultado=$_REQUEST['text1']/$_REQUEST['text2'];

echo "El resultado es: $resultado";?></body></html>

if (isset($_REQUEST['radio1']))     {       if ($_REQUEST['radio1']=="sumar")        $resultado=$_REQUEST['text1']+$_REQUEST['text2'];

              .              .              .

 

     }     else     {         echo "Debe seleccionar una operacion";     }

La función isset retorna true si esta definida dicha componente en el vector.

Controles Visuales en Formularios (3-7)

Control Checkbox

            Estos tipos de controles permiten la selección de un conjunto de opciones (a diferencia de los de tipo radio que permiten la selección de solo uno)

Ejemplo Práctico: Implementar un programa que permita en el servidor realizar la suma, resta, mul7tiplicacion o division de dos enteros, pudiendo realizar la selección de múltiples operaciones en forma simultanea.

Pantalla solicitada:

Page 24: Tutorial de PHP

Procesos: Incluir los dos text para la carga de los dos enteros, cuatro controles de tipo checkbox para permitir la selección de las operaciones y el botón submit para el envío de los datos al servidor.

Implementación (Checkbox.htm):

<html><head></head><body><form name="form1" action="Checkbox.php" method="post">Ingrese primer valor:<input type="text" name="text1"><br>Ingrese segundo valor:<input type="text" name="text2"><br><input type="checkbox" name="checkbox1">Sumar<br><input type="checkbox" name="checkbox2">Restar<br>

Page 25: Tutorial de PHP

<input type="checkbox" name="checkbox3">Multiplicar<br><input type="checkbox" name="checkbox4">Dividir<br><input type="submit" name="boton1" value="operar"></form></body></html>

Explicación:

En el formulario, los controles de tipo checkbox se definen como:

<input type="checkbox" name="checkbox1"><input type="checkbox" name="checkbox2">etc.

Página que efectua las operaciones (Checkbox.php)

Objetivo: Verificar que checkbox ha sido seleccionado y realizar la operación correspondiente. Mostrar los resultados de las operaciones seleccionadas.

Procesos: Con una serie de condiciones verificar que checkbox estan seleccionados.

Implementación (Checkbox.php):

<html><head></head><body><?php     if (isset($_REQUEST['checkbox1']))     {       $suma=$_REQUEST['text1']+$_REQUEST['text2'];       echo "La suma es $suma <br>";     }     if (isset($_REQUEST['checkbox2']))     {       $dif=$_REQUEST['text1']-$_REQUEST['text2'];       echo "La diferencia es $dif <br>";     }     if (isset($_REQUEST['checkbox3']))     {       $mul=$_REQUEST['text1']*$_REQUEST['text2'];

Page 26: Tutorial de PHP

       echo "La multiplicacion es $mul <br>";     }     if (isset($_REQUEST['checkbox4']))     {       $div=$_REQUEST['text1']/$_REQUEST['text2'];       echo "La division es $div <br>";     }?></body></html>

Explicación:

En el vector $_REQUEST se define una componente por cada checkbox seleccionado en el formulario.

Controles Visuales en Formularios (4-7)

Control Select

            Este tipo de control permite la selección de un unico valor o múltiples valores según como se lo defina.

Ejemplo Práctico: IDEM de la operación de dos enteros en primera instancia que permita seleccionar un único valor del select.

Pantalla solicitada:

Page 27: Tutorial de PHP

Procesos: Incluir los dos text para la carga de los dos enteros, un select para la selección de la operación y el botón submit para el envío de los datos al servidor.

Implementación (Select.htm):

<html><head></head><body><form name="form1" action="Select.php" method="post">Ingrese primer valor:<input type="text" name="text1"><br>Ingrese segundo valor:<input type="text" name="text2"><br>Seleccione la operacion:<select name="select1">  <option value="sumar">sumar</option>  <option value="restar">restar</option>  <option value="multiplicar">multiplicar</option>  <option value="dividir">dividir</option></select>

Page 28: Tutorial de PHP

<br><input type="submit" name="boton1" value="operar"></form></body></html>

Explicación:

Para disponer un select se utiliza la marca:

<select name="select1">

Los distintos item que tendrá el select, se los indican con las marcas:

<option value="sumar">sumar</option><option value="restar">restar</option>

El texto que va fuera de las marcas es el que se muestra en el formulario, y la propiedad value es la que se envía al formulario y se debe consultar en la página php que procesa el formulario.

Por defecto aparece seleccionada la primera opción, si se quiere que aparezca otra seleccionada, se debe agregar el comando selected en la marca option correspondiente:

<option value="multiplicar" selected>multiplicar</option>

Controles Visuales en Formularios (5-7)

Página que efectua la operación (Select.php)

Verificar que opción ha sido seleccionada y realizar la operación correspondiente.

Procesos: Con una serie de condiciones verificar que operación realizar.

Implementación (Select.php):

<html><head></head><body><?php

if ($_REQUEST['select1']=="sumar") { $suma=$_REQUEST['text1']+$_REQUEST['text2']; echo "La suma es $suma <br>";

Page 29: Tutorial de PHP

} if ($_REQUEST['select1']=="restar") { $dif=$_REQUEST['text1']-$_REQUEST['text2']; echo "La diferencia es $dif <br>"; }

if ($_REQUEST['select1']=="multiplicar") { $mul=$_REQUEST['text1']*$_REQUEST['text2']; echo "La multiplicacion es $mul <br>"; } if ($_REQUEST['select1']=="dividir") { $div=$_REQUEST['text1']/$_REQUEST['text2']; echo "La division es $div <br>"; }

?></body></html>Explicación:

En el vector $_REQUEST se crea una componente que almacena la propiedad value de la opción seleccionada en el formulario.Con una serie de if se verifica cual valor se cumple:

  if ($_REQUEST['select1']=="sumar")

 

Control Select con Selección Múltiple

Objetivo: Solicitar la carga de dos enteros y el o los tipos de operaciones a ejecutar.

Vista preliminar:

Page 30: Tutorial de PHP

Procesos: Incluir los dos text para la carga de los dos enteros, un select para la selección de las operaciones y el botón submit para el envío de los datos al servidor

Controles Visuales en Formularios (6-7)

Implementación (Multiple.htm):

<html><head></head><body><form name="form1" action="Multiple.php" method="post">Ingrese primer valor:<input type="text" name="text1"><br>Ingrese segundo valor:<input type="text" name="text2"><br>Seleccione las operaciones:<select name="select1[]" size="4" multiple>  <option value="sumar">sumar</option>  <option value="restar">restar</option>  <option value="multiplicar" selected>multiplicar</option>  <option value="dividir" selected>dividir</option>

Page 31: Tutorial de PHP

</select><br><input type="submit" name="boton1" value="operar"></form></body></html>

Explicación:

Para disponer un select con múltiples selecciones:<select name="select1[]" size="4" multiple>Además de agregar la palabra clave multiple el nombre del control debe tener los caracteres [] (esto indica que se debe crear un vector)

Las opciones que queremos que aparezcan seleccionadas se disponen de la siguiente manera:  <option value="multiplicar" selected>multiplicar</option>y las que no queremos que aparezcan inicialmente seleccionadas:  <option value="sumar">sumar</option>

Página que efectua la operación (Multiple.php)

Verificar que opciones han sido seleccionadas y realizar las operaciones correspondientes.

Procesos: Con una serie de condiciones verificar que operación realizar.

Implementación (Multiple.php):

<html><head></head><body><?php foreach($_REQUEST['select1'] as $valor) { if ($valor=="sumar") { $suma=$_REQUEST['text1']+$_REQUEST['text2']; echo "La suma es $suma <br>"; } if ($valor=="restar") { $dif=$_REQUEST['text1']-$_REQUEST['text2']; echo "La diferencia es $dif <br>"; }

Page 32: Tutorial de PHP

if ($valor=="multiplicar") { $mul=$_REQUEST['text1']*$_REQUEST['text2']; echo "La multiplicacion es $mul <br>"; } if ($valor=="dividir") { $div=$_REQUEST['text1']/$_REQUEST['text2']; echo "La division es $div <br>"; } }?></body></html>

Explicación:

La componente $_REQUEST['select1'] se crea con una serie de componentes (es decir es un vector de vectores)Recorremos este vector interno con el comando foreach:

     foreach($_REQUEST['select1'] as $valor)

En cada ejecución del foreach se almacena en la variable $valor el contenido del atributo value del select.Disponemos dentro del foreach un if para cada valor posible:

          if ($valor=="sumar")                                    . . .                                                     if ($valor=="restar")

                                   . . .   

Controles Visuales en Formularios (7-7)

Control Textarea

Objetivo.Cargar en un formulario el cuerpo, titulo de un Libro y un comentario del mismo. A continuación, mostrar los datos ingresados.

Formulario de carga (Textarea.htm)

Vista preliminar:

Page 33: Tutorial de PHP

Implementación (Textarea.htm):

<html><head></head><body><form name="form1" action="Textarea.php" method="post">Titulo:<input type="text" name="titulo" size="50"><br>Comentario:<br><textarea rows="10" cols="40" name="comentario"></textarea><br><input type="submit" name="boton1" value="enviar"></form></body></html>

Page 34: Tutorial de PHP

Explicación:El código html es muy sencillo.La parte nueva es la incorporación del textarea:<textarea rows="10" cols="40" name="comentario"></textarea>Las propiedades rows y cols le dan el tamaño relativo al cuadro de carga de datos (textarea)

Si queremos que se inicie con un texto cargado: <textarea rows="10" cols="40">este texto aparece inicialmente</textarea>

Página que efectua la operación (Textarea.php)

Mostrar los datos cargados previamente.

Procesos: Extraer del vector asociativo los valores cargados en el formulario e imprimirlos en la nueva página.

Implementación (Textarea.php):

<html><head></head><body><?phpecho "Libro recomendado";echo "<br>"; echo "<br>";echo "Titulo:".$_REQUEST['titulo']."<br>";echo "Comentario:".$_REQUEST['comentario']."<br>";?></body></html>

Estructuras Repetitivas (1)

 Son estructuras basadas en reiterar una o un grupo de instrucciones "n" veces y dependen de una variable de control del ciclo.

PHP propone varios tipos de estructuras repetitivas o ciclos, cada uno con características especificas distintas.

Estructura while

Esta instrucción ejecuta un bloque de programa mientras se cumpla una cierta condición.Si la condición es verdadera, ingresa en el ciclo del while, y ejecuta la porción de programa incluida.Cuando deja de cumplirse la condición, sale del ciclo y continúa ejecutándose el resto del programa.

Page 35: Tutorial de PHP

Si por el contrario, la condición no se cumple de entrada, las líneas en el interior del while no se ejecutarán ni una vez.

 El formato es el siguiente:

while (Condición)  {     Instrucción_1;     Instrucción_2;           :     Instrucción_N;  } Ejemplo Práctico: Mostrar en una página los distintos tipos de tamaño de letras que existen e html.

<Html><Title>  Letras.php  </Title><Body> <?PHP $size=1; while ($size<=7)  {   echo "<font size=$size> Tamaño $size </font> <br>";   $size++;  } ?> </Body></Html>

Comentario del programa: En primer lugar se asigna a la variable $size el valor inicial de uno, (es muy común olvidarse de colocar este valor inicial), que corresponde a la letra más pequeña. La siguiente línea, while ($size<=7), muestra la creación del ciclo, que significa: mientras el valor de la variable $size sea menor o igual a 7 ingresar al ciclo. Dentro de este ciclo o estructura, se encuentra la línea encargada de modificar el font de cada texto mostrado. La primera vez, con la variable $size en el valor 1, la línea quedaría como:echo "<font size=1> Tamaño 1 </font> <br>";Posteriormente se  incrementa el valor de la variable $size en una unidad y nuevamente se retorna a la condición. El tamaño del mensaje varía a medida que aumenta el valor de la variable $size. Se continua el ciclo hasta que el valor de la variable $size sea de 8, con este valor la condición será falsa y sale del ciclo. Lo que se obtiene es una página como la siguiente:

Page 36: Tutorial de PHP

Se observa que en este ciclo while, si la condición es falsa de entrada, las líneas en el interior del ciclo no se procesan, por lo tanto, esta estructura ejecuta las instrucciones en su interior de cero a n veces.

Estructuras Repetitivas (2)

Ejemplo Práctico: Imprimir los múltiplos de cuatro comenzando en el valor 100 y terminando en el valor 400.

Page 37: Tutorial de PHP

El programa quedaría de la siguiente manera:

<Html><Title> Multiplos de 4   </Title><Body> <H2> Múltiplos de 4 de 100 a 400 <Hr> <?PHP $m=100;    // Valor Inicial while ($m<=800)  {   echo "$m - ";   $m = $m+4;  } ?>

</Body></Html>

Estructuras Repetitivas (3)

Page 38: Tutorial de PHP

Ejemplo Práctico: Ingresar dos valores por medio de un formulario y mostrar posteriormente todos los números pares comprendidos entre ellos.

Vista Preliminar:

El programa sería el siguiente:

<Html><Title> Numeros Pares </Title><Body><?PHPif ($_REQUEST['boton'] != ""){  $a = $_REQUEST['a'];  $b = $_REQUEST['b'];  echo "<H4>";  echo "Numeros pares comprendido entre $a y $b";  echo "<Hr>";  if ($a%2==0)     $a=$a+2;     else     $a=$a+1;  while ($a<$b)   {

Page 39: Tutorial de PHP

    echo "$a - ";    $a = $a+2;   } } else {  ?> <FORM ACTION="Pares.php" METHOD="POST"> <H4> Ingrese el intervalo para los números pares <Hr> Valor 1: &nbsp<INPUT TYPE="TEXT" NAME="a" SIZE="10"> <Br> Valor 2: &nbsp<INPUT TYPE="TEXT" NAME="b" SIZE="10"> <Br><Br> <INPUT TYPE="SUBMIT" NAME="boton" VALUE="Ingresar Datos"> <?PHP }?></Body></Html>

Comentario del programa: Se comienza el programa con la pregunta:if ($_REQUEST['boton'] != "") verificando si se ha pulsado el botón del formulario. La primera vez que se ejecuta la página, la condición resulta falsa, por lo tanto el programa continúa con la instrucción else, mostrando el formulario.

Con la línea:        <FORM ACTION="Pares.php" METHOD="POST">   se crea el formulario con la posibilidad de llamar a la misma página, esto se logra con : ACTION="Pares.php". Con la marca <H4> se consigue modificar el tamaño de la letra, posteriormente se escribe la leyenda:Ingrese el intervalo para los números pares y con <Hr> se realiza una línea horizontal. Luego se muestra la leyenda Valor 1:, y con la marca &nbsp  se consigue dejar un espacio en blanco.Con la instrucción: <INPUT TYPE="TEXT" NAME="a" SIZE="10">Se muestra un editor de campo llamado "a" con capacidad para almacenar 10 caracteres.Con <Br> se deja un renglón en blanco y luego se repite el proceso para ingresar el valor 2.Con la línea:<INPUT TYPE="SUBMIT" NAME="boton" VALUE="Ingresar Datos">se muestra un botón cuyo rótulo es precisamente:  "Ingresar Datos".

Page 40: Tutorial de PHP

Una vez ingresados los datos y presionado el botón, la página se llama a sí misma, pero ahora la condición inicial será verdadera, por lo tanto continúa procesando las líneas siguientes.Mediante las líneas:              $a = $_REQUEST['a'];               $b = $_REQUEST['b'];se almacenan en las variables $a y $b los datos enviados del formulario. Luego se cambia el tamaño de la letra a H4 y se imprime la leyenda:"Números pares comprendidos entre $a y $b"  La segunda condición:  if ($a%2==0), verifica si el Resto de dividir el valor de $a con el factor 2 es igual a cero. Si esto es cierto, significa que el valor de $a es un número par, por lo tanto se lo incrementa en dos, de lo contrario se lo incrementa en uno, en ambos casos, es para comenzar con el primer número par comprendido. Posteriormente se ingresa al ciclo while con la condición de que el valor de la variable $a sea menor que el valor de la variable $b, de ser así, se muestra el valor de $a y un guión, luego se incrementa en dos unidades y se retorna a la condición.El ciclo continúa hasta que el valor de $a sea superior al valor de $b, con lo que la condición será falsa y finaliza la repetición, terminando también la ejecución del programa. Una vez aceptado los valores, la pantalla se vería de la siguiente manera:

Estructuras Repetitivas (4)

do  {

Page 41: Tutorial de PHP

    instrucción_1;     instrucción_2;         :    instrucción_n;  } while (condición);

En este caso se observa que las instrucciones dentro del ciclo se procesan al menos una vez, ya sea que la condición sea falsa o verdadera. Por lo tanto, en este ciclo, las instrucciones se procesarán de uno a n veces.

Ejemplo Práctico: Mostrar en pantalla todos los números divisibles por 7 entre 100 y 400.

<Html><Body><Title> Divisibles por 7   </Title><H3> Números divisibles por 7 entre 100 y 400 <Hr> <?PHP   $n=100;   do     {      if ($n % 7 == 0)       {        echo "$n - ";       }      $n++;     }    while ($n<400);  ?></Body>  </Html>

Estructuras Repetitivas (5)

Estructura for

Es uno de los ciclos más práctico para determinadas situaciones. Se utiliza generalmente cuando se tiene bien especificado la cantidad de repeticiones a realizar. Se diferencia de los anteriores, en que se debe incluir en él, una variable, la cual se incrementa o decrementa en forma automática.

Su formato es el siguiente:

for ($variable=ValorInicial; Condicion; Incremento)  {

Page 42: Tutorial de PHP

    Intrucción_1;         :    Intrucción_n;  }

Esta instrucción for consta de tres parámetros, que son:

1. Inicialización de la variable que se utilizará en la condición. 2. Condición que se debe cumplir para permanecer en el ciclo. 3. Modificación de la variable puesta en juego.

Ejemplo Práctico: Desarrollar una tabla que contenga el número, su cuadrado y su cubo.

El código sería el siguiente:

<Html><Title> Tabla de Cuadrados y Cubos  </Title><Body> <?PHP  echo "<Table align=Center Border=2 width=60%>";  echo"<Tr>";      echo"<th>"; echo " Número ";    echo"</Th>";    echo"<th>"; echo " Cuadrado ";  echo"</Th>";    echo"<th>"; echo " Cubo ";      echo"</Th>";  echo"</Tr>"; 

  for ($i=1; $i<=15; $i++)   {    $cuadrado= $i * $i;    $cubo    = $i * $i * $i;    echo"<Tr>";        echo"<td align=Center>"; echo ($i);       echo"<td align=Center>"; echo ($cuadrado);       echo"<td align=Center>"; echo ($cubo);     echo"</Tr>";     }   echo "</Table>"; ?> </Body></Html>

En este caso se ejecuta el bloque de la estructura for mientras el valor de la variable $i, sea menor o igual al valor de 15. Se calculan en forma independiente el cuadrado y el cubo y luego se lo muestra en una tabla.

Funciones en PHP

Page 43: Tutorial de PHP

Las funciones son fragmentos de código independientes, que pueden ser invocados desde otra parte del programa. La ventaja principal que tiene el uso de las funciones es que permite realizar un programa modular y no tener que repetir el código varias veces en distintas partes del programa, o inclusive, en otros programas.  Decir que  permite realizar un programa modular, significa que se puede realizar un programa en módulos independientes, es decir, fracciones de programa en los cuales cada uno cumple una misión específica, por lo tanto cada función debe tener una tarea bien determinada.Un programa se dice que es estructurado, cuando es fragmentado en módulos que cumplan con una acción precisa.

Una función consta de un nombre y argumentos, llamados comúnmente parámetros.

Formato:

              function  Nombre_Funcion (parametro1, parametro2, ... parámetro n)                  {                     Instrucciones;                     <return valor>                     }

Los parámetros son opcionales, ya sea que una función acepte o no valores, lo mismo que la instrucción return, dependiendo de que la función retorne algún valor o no.

Ejemplo Práctico 1:                         Realizar una función que acepte dos números y devuelva el producto de ambos. Cargar los dos valores a través de un formulario.

<Html><TITLE> Producto.php  </TITLE><Body> <?PHP     function Producto($a, $b)       {         $p = $a * $b;         return $p;       }

    // Programa principal        if ( $_REQUEST['Boton'] != "" )      {        $V1 = $_REQUEST['Valor1'];        $V2 = $_REQUEST['Valor2'];        echo ("<H3>");        echo (" El producto de $V1 y $V2 es: " . Producto($V1, $V2));      }      else

Page 44: Tutorial de PHP

      {      ?>      <FORM ACTION="Producto.php" METHOD="POST">      <H2>      Ingrese Primer valor :       <Input Type="Text" Name="Valor1" Size="5">      <Br>      Ingrese Segundo valor:       <Input Type="Text" Name="Valor2" Size="5">      <Br><Br>      <Input Type="Submit" Name="Boton" Value="Ingresar Datos">      </Form>        <?PHP       }   ?></Body></Html>

Comentario:

Al cargarse la página, se visualiza el formulario para el ingreso de los dos valores, ya que al no haber sido presionado el Botón, la condición del if en el programa principal, es falsa.

Page 45: Tutorial de PHP

Una vez cargado el formulario y presionado el botón "Ingresar Datos", la página se llama a sí misma y ahora la condición del if es verdadera, continuando el programa con la asignación de las variables $V1 y $V2, a través respectivamente de la instrucción $_REQUEST. La línea: echo("<H3>"); únicamente ajusta el tamaño de la letra.Para llamar a la función, se puede realizar de dos maneras, una sería asignándole el valor devuelto por la misma, a una variable y la otra es utilizarla directamente dentro de la sentencia echo o dentro de cualquier estructura. En este caso la función es llamada dentro de la impresión, concatenada con la leyenda correspondiente.

Cuando es llamada la función, se verifica en primera instancia, si la cantidad de parámetros que tiene la definición coincide con la cantidad de parámetros de la llamada. En caso de coincidir, realiza la transferencia de contenidos de variables, en este caso, el contenido de la variable $V1 es enviado a la variable $a y el contenido de la variable $V2, es enviado a la variable $b, es decir que la transferencia se realiza en el orden en la cual se encuentran.Una vez transferidos los valores, el programa continúa ejecutando las instrucciones dentro de la función, en este caso se calcula el producto y se lo asigna a la variable $p. Por último, por medio de la instrucción return se retorna el valor contenido en la variable $p al programa principal dentro de la instrucción echo, terminando la ejecución del programa.

Nota: Las variables $a y $b, son locales a la función, fuera de ella, no existen, además, en este caso, el paso de parámetros, es decir, los valores enviados a la función a las variables $a y $b, se denominan paso por Valor, y significa que si se cambia el valor del argumento dentro de la función, no afectará a las variables fuera de ellas. Por lo tanto, si dentro de la función, se cambiara el contenido de la variable $a o $b, no causará ningún cambio en las variables $V1 y $V2.

Funciones en PHP

Ejemplo Práctico 2:                         Realizar una función que permita determinar si un número pasado como parámetro, es par o impar.

<Html><TITLE> Par.php  </TITLE><Body> <?PHP     function Par($n)       {         if ($n % 2 == 0)            return true;          else            return false;

Page 46: Tutorial de PHP

       }

     // Programa principal        if ( $_REQUEST['Boton'] != "" )      {        $V = $_REQUEST['Valor'];        echo ("<H2>");        echo (" El valor $V es: ");        if (Par($V))           echo ("Par");          else           echo ("Impar");      }      else      {      ?>      <FORM ACTION="Par.php" METHOD="POST">      <H3>      Ingrese un valor :       <Input Type="Text" Name="Valor" Size="5">      <Br><Br>      <Input Type="Submit" Name="Boton" Value="Ingresar Dato">      </Form>        <?PHP       }   ?></Body></Html>

Comentario:Se observa que en este caso, que la función devuelve un tipo Boolean, es decir true o false, según corresponda. En el programa principal, la función es llamada directamente dentro de la estructura if. Observar además, que no hace falta colocar  == true, ya que lo toma por defecto.

Funciones en PHP

Ejemplo Práctico 3:

Realizar una función que acepte un número, y retorne la suma de todos los números inferiores a él, incluido dicho número.Si el número ingresado es 5, deberá devolver: 1+2+3+4+5

<Html><TITLE> Suma.php </TITLE>

Page 47: Tutorial de PHP

<Body><?PHP   function Suma($n)       {         $s=0;         for ($i=1; $i<=$n; $i++)            {               $s=$s+$i;            }           return $s;       }

// Programa principal

if ( $_REQUEST['Boton'] != "" ) {    $V = $_REQUEST['Valor'];    echo ("<H2>");    echo (" El valor de la suma de los inferiores a $V es: ");    $Resultado = Suma($V);    echo ($Resultado) ; }  else  {  ?>   <FORM ACTION="Suma.php" METHOD="POST">   <H2>   Ingrese un valor :   <Input Type="Text" Name="Valor" Size="5">   <Br><Br>   <Input Type="Submit" Name="Boton" Value="Ingresar Dato">   </Form>    <?PHP  } ?></Body></Html>

Comentario:

Aquí el valor devuelto por la función es asignado a la variable $Resultado y luego se imprime. También se la podría haber involucrado dentro de la instrucción echo.

Por defecto, todos los parámetros pasados a las funciones son por valor, en cambio si se necesitaran que los parámetros enviados a la función, modifiquen su valor, se deberían

Page 48: Tutorial de PHP

pasar por referencia, esto se logra anteponiendo un & (ampersand) delante del parámetro que se desea pasar por referencia.

Funciones en PHP

Ejemplo Páctico 4:  Desarrollar una función que acepte una cadena de caracteres y la convierta en mayúscula.

<Html><TITLE>  Mayuscula.php  </TITLE><Body> <?PHP   function Mayuscula( &$cadena )    {     $cadena = strtoupper($cadena);    }

    // Programa principal        if ( $_REQUEST['Boton'] != "" )      {        $N = $_REQUEST['Nombre'];        Mayuscula($N);        echo ("<H2>");        echo ("El nombre en mayuscula es es: " . $N);      }      else      {      ?>      <FORM ACTION="Mayuscula.php" METHOD="POST">      <H2>      Ingrese Apellido y Nombre :       <Input Type="Text" Name="Nombre" Size="40">      <Br><Br>      <Input Type="Submit" Name="Boton" Value="Ingresar Dato">      </Form>        <?PHP       }   ?></Body></Html>                               Ejemplo Práctico 5:                        Realizar una función que acepte el lado de un cuadrado y  calcule su perímetro y su superficie (No imprimir dentro de la función).

Page 49: Tutorial de PHP

<Html><TITLE> Cuadrado.php </TITLE><Body> <?PHP  function Calcular( $Lado, &$Perimetro, &$Superficie )      {         $Perimetro = $Lado * 4;         $Superficie = $Lado * $Lado;       }// Programa principal      if ( $_REQUEST['Boton'] != "" )        {          $P=0; $S=0;          $L = $_REQUEST['Lado'];          Calcular($L, $P, $S);          echo ("El valor del perímetro es: $P");          echo ("<Br>");          echo ("El valor de la superficie es: $S");         }       else        {       ?>    <FORM ACTION="Cuadrado.php" METHOD="POST">     <H2>     Ingrese El valor del Lado de un Cuadrado :     <Input Type="Text" Name="Lado" Size="5">     <Br><Br>     <Input Type="Submit" Name="Boton" Value="Ingresar Dato">     </Form>     <?PHP      } ?>

</Body></Html>

Comentario:

En este caso, cuando se llama a la función Calcular, se lo realiza utilizando  la variable $L como parámetro valor, ya que no cambia su valor, y las variables  $P y $S  se las especifica como parámetro por referencia, esto se consigue anteponiendo el símbolo & a las variables Perimetro y Superficie, porque es necesario que cambien sus valores de acuerdo con el cálculo requerido.

Se reitera que: PHP individualiza a una variable que es por referencia cuando contiene el símbolo &(ampersand) delante de la variable.

Page 50: Tutorial de PHP

Funciones útiles predefinidas en PHP

A continuación se describen una serie de funciones predefinidas por el lenguaje PHP de uso común.

Funcion : isset

                            Permite saber si una variable está definida. La función isset recibe como parámetro la variable a verificar, devolviendo un valor TRUE si la variable está definida, de lo contrario devuelve FALSE.Ejemplo:

     $Precio = 27.54;     if (isset($Precio))          echo("La variable está definida");          else            echo("La variable no está definida");

En este caso se imprimirá la leyenda: La variable está definida.También se puede utilizar la función isset con objetos, como por ejemplo, para saber si se ha pulsado un botón o no.

Ejemplo Práctico 1:                           Ingresar dos valores en un formulario, y mostrar todos los números comprendidos.

<Html><Title>  Numeros.php </Title><Body><?PHPif (isset($_REQUEST[boton]))  {   $a=$_REQUEST[a];   $b=$_REQUEST[b];   echo "Números comprendidos entre $a y $b";   echo "<Hr>";    for ($i=$a+1; $i<$b; $i++)     {       echo ("$i - ");     }    }  else  { ?> <FORM ACTION="Numeros.php" METHOD="POST"> <H2>

Page 51: Tutorial de PHP

 Ingrese el intervalo para los números pares <Hr> Valor 1: &nbsp<INPUT TYPE="TEXT" NAME="a" SIZE="10"> <Br> Valor 2: &nbsp<INPUT TYPE="TEXT" NAME="b" SIZE="10"> <Br><Br> <INPUT TYPE="SUBMIT" NAME="boton" VALUE="Ingresar Datos"> <?PHP   } ?></Body></Html>

Comentario:                   En primera instancia, mediante la función isset, se evalúa si el botón está definido con algún valor, es decir, si se ha pulsado. Para la primera vez que se ejecute la página, la condición   if (isset($_REQUEST[boton]))   será falsa (FALSE), por lo tanto se ejecutará el formulario. Una vez ingresado los valores y presionado el botón, la página se llama a si misma, pero ahora la condición: if (isset($_REQUEST[boton]))   será verdadera (TRUE). El resto del programa simplemente ejecuta lo requerido en el enunciado.

Funcion : unset                               Esta función, destruye la variable que se le pasa como parámetro. Devuelve un valor TRUE si la variable es destruida, de lo contrario devuelve FALSE.Ejemplo:

         $Precio = 27.54;         unset($Precio);         if (isset($Precio))                   echo ("La variable está definida");                  else                   echo("La variable no está definida");

En este caso, se imprimirá la leyenda: La variable no está definida.

Funcion : is_numeric                                          Permite saber si el contenido de una variable es un número o una cadena. En caso de que el valor de la variable a verificar sea un número, devolverá un valor TRUE, en caso contrario, devolverá FALSE.Ejemplo: 

Page 52: Tutorial de PHP

          $Valor = 1395;          if (is_numeric($Valor))                   echo("Es un número");                   else                     echo("Es una Cadena");

Funcion : is_int                               Determina si una variable es un entero o no. En caso de que el valor de la variable a verificar sea un número entero, devolverá un valor TRUE, en caso contrario, devolverá FALSE.Ejemplo:           $Edad = 25;          if (is_int($Edad))                   echo("El contenido es un Entero");                   else                    echo("El contenido no es un Entero");

Funcion : is_double                                        Evalúa si una variable pasada como parámetro, contiene un valor numérico con punto decimal. Si el contenido de la variable es un número con decimales, la función devolverá un valor TRUE, en caso contrario, devolverá FALSE.Ejemplo:

          $Sueldo = 1285.43;          if (is_double($Sueldo))                   echo("El contenido es un double");                   else                    echo("El contenido no es un double");

Funcion : is_string                                       Verifica si el contenido de una variable es una cadena de caracteres o número. Si es una cadena devolverá un valor TRUE, en caso contrario, devolverá FALSE.Ejemplo:

          $Frase = "Hoy es Sábado";          if (is_string($Frase))                   echo("El contenido es una cadena");                   else                   echo("El contenido no es una cadena");

Page 53: Tutorial de PHP

Funcion : is_null                                   Determina si el valor de una variable es nulo o no. Si es nulo devolverá un valor TRUE, en caso contrario, devolverá FALSE.

Ejemplo:

          $Valor = 0;          if (is_null($Valor))                   echo("El contenido es nulo");                   else                    echo("El contenido no nulo");

Funcion : is_array                                       Permite averiguar si una variable es un array. Devuelve el valor TRUE si la variable pasada como parámetro es un array o FALSE si no lo es.Ejemplo:

          $Nombre[0] = "Marcelo";          $Nombre[1] = "Javier";          $Nombre[2] = "Ricardo";          if (is_array($Nombre))                   echo("La variable es un array");                   else                     echo("La variable no es un array");

Funcion : intval                                Esta función permite obtener el valor entero de una variable de tipo double.Ejemplo:

          $Promedio = 5.37;          $Entero  = intval ($Promedio);          echo ("El valor entero del promedio es: $Entero");

Arreglos en PHP

Se define a un arreglo como un grupo de elementos relacionados entre sí por medio de índices. Los arreglos pueden ser de una o más dimensiones, los de una dimensión, son llamados comúnmente "vectores".A diferencia con el lenguaje C, en PHP, un vector puede tener elementos de distintos tipos.Para hacer referencia a un elemento del vector, se utiliza un índice, que indica la dirección en donde se encuentra un determinado valor. El índice en un arreglo comienza siempre por

Page 54: Tutorial de PHP

cero. (Mas adelante se verá que el índice de un vector, no necesariamente debe ser un número entero, sino que también puede ser un texto).

Ejemplo Práctico 1:                        Almacenar los nombres de los días de la semana en un vector y luego imprimirlos uno debajo de otro.

<Html><Title> Ejmeplo 1  </Title><Body><?PHP  // Inicializacion del Vector

  $dia[0] = "Domingo";  $dia[1] = "Lunes";  $dia[2] = "Martes";  $dia[3] = "Miércoles";  $dia[4] = "Jueves";  $dia[5] = "Viernes";  $dia[6] = "Sábado";

  // Impresion del vector

  for($i=0; $i<7; $i++)   {    echo ($dia[$i] . "<Br>") ;   } ?></Body></Html>

Comentario:                        Se inicializa el vector indicando el número que le corresponde a cada posición entre corchetes [ ] y asignando el valor que se desea almacenar en dicha posición.

Un vector, en PHP, puede contener elementos de distintos tipos de datos, es decir, un elemento puede ser un número entero, otro una cadena, otro un número con decimales, etc.Un modelo de este caso se puede observar en el siguiente ejemplo.

 Ejemplo Práctico 2:                        Almacenar en un vector los datos personales de un empleado y luego mostrarlos en pantalla.

<Html><Title>  Ejemplo 2  </Title><Body>

Page 55: Tutorial de PHP

<?PHP  // Inicializacion del Vector

  $Empleado[0] = 4371;  $Empleado[1] = "Martinez Leandro";  $Empleado[2] = "27.643.742";  $Empleado[3] = 1429.54;  $Empleado[4] = "Arquitecto";

  // Impresion del vector

  echo ("Legajo: " . $Empleado[0] . "<Br>");  echo ("Nombre: " . $Empleado[1] . "<Br>");  echo ("DNI : " . $Empleado[2] . "<Br>");  echo ("Sueldo: " . $Empleado[3] . "<Br>");  echo ("Profesion: " . $Empleado[4] . "<Br>"); ?></Body></Html>

Existen varias maneras de inicializar vectores en PHP. A continuación se describen algunos ejemplos.

    Pais[] = "Argentina";    Pais[] = "Uruguay";    Pais[] = "Brasil";    Pais[] = "Chile";

En este caso se observa que no es necesario colocar el número de índice, ya que PHP lo asigna automáticamente para cada valor, comenzando siempre desde cero. Otra forma de inicializar un vector, es a través del constructor array, como se muestra en el siguiente ejemplo:

Pais =array("Argentina","Uruguay","Brasil","Chile");

También  se puede definir un arreglo asociando explícitamente el índice a un valor, como se indica a continuación:

    $Frutas = array(0 => "Manzana",                              1 => "Naranja",                              2 => "Pera",                              3 => "Ananá");

Además, los índices, pueden no ser obligatoriamente consecutivos, ni tampoco comenzar de cero, ni tampoco ser un número. (Ver ejemplos mas adelante).Se puede conocer la cantidad de elementos que tiene un vector, para ello se utiliza la

Page 56: Tutorial de PHP

función count(vector). Esta función acepta como parámetro el nombre del vector y devuelve la cantidad de elementos del mismo.

Ejemplo Práctico 3:                        Cargar en un vector artículos de librería y luego imprimir la cantidad de ellos.

<Html><Title>  Ejemplo 3   </Title><Body><?PHP  // Inicializacion del Vector   $Articulos =array("Lápis","Goma","Hoja","Tinta");

  // Impresion del vector

  $Cantidad = count($Articulos);  echo ("La cantidad de Artículos son: " . $Cantidad);

 ?></Body></Html>

Un vector en PHP puede tener elementos en cualquier posición, por lo tanto, se puede cargar un vector con posiciones no consecutivas, sino en forma totalmente aleatoria. Para poder recorrer este tipo de vectores se utilizan las funciones next() y prev().

Ejemplo Práctico 4:                        Cargar los nombres de personas en cualquier posición. <Html><Title>  Ejemplo 4  </Title><Body><?PHP  // Inicializacion del Vector

     $Nombre[10] = "Marcelo";     $Nombre[20] = "Alicia";     $Nombre[15] = "Alejandra";     $Nombre[35] = "Mario";     $Nombre[12] = "Alberto";

  // Impresion del vector

  reset($Nombre);   echo ("<H2>" . "Vector de Nombres");

Page 57: Tutorial de PHP

  echo ("<H3>" . "<Hr>");  do    {     // Buscar Posicion especificada     $i = key($Nombre);

     // Buscar Contenido en esa posicion     $Valor = current($Nombre);     echo ("Posición: " . $i . " - ");     echo ("Contenido: " . $Valor);     echo ("<Br>");    }    while (next($Nombre)); ?></Body></Html>

Comentario:                        Aquí se observa que los nombres fueron cargados en posiciones aleatorias. Con la función reset(), se logra llevar el puntero al principio del vector y para poder encontrar la posición de un elemento se utiliza la función key(), la cual acepta como parámetro el vector y devuelve la posición. Luego para poder obtener el contenido en esa posición se utiliza la función current(), que acepta el vector y devuelve el valor almacenado. La función next() avanza el puntero a la posición siguiente, si se ha llegado al final del vector, esta función devuelve false. 

Page 58: Tutorial de PHP

 La salida de este ejemplo es la siguiente:

                       En caso de querer imprimir los datos del vector en forma invertida, solamente se debe cambiar la instrucción reset($Nombre) por: end($Nombre) y la instucción:  while (next($Nombre))  por : while (prev($Nombre)).Como se dijo anteriormente, las funciones next() y prev() devuelven false al llegar al final y principio del vector respectivamente, pero tambien devuelven false cuando el valor de un elemento es cero.

La salida quedará de la siguiente forma:

Page 59: Tutorial de PHP

                       La función end() lleva el puntero al final del vector y con la función prev(), se retrocede el puntero hasta el anterior. Cuando se llegó al principio del vector, la función prev() devuelve false y sale del ciclo.

Otra forma de recorrer un vector de estas característica es utilizando las funciones list() y each(), de la siguiente manera:

Ejemplo Práctico 5:                       Cargar Legajos de personas con sus respectivos Nombres

<Html><Title>  Ejemplo5.php  </Title><Body><?Php  // Inicializacion del Vector

     $Nombre[100] = "Javier";     $Nombre[200] = "Cintia";     $Nombre[150] = "Ricardo";     $Nombre[350] = "Raúl";     $Nombre[120] = "Guillermo";

  // Impresion del vector

  reset($Nombre);

Page 60: Tutorial de PHP

  echo "<H2>"."Vector de Nombres";  echo "<H3>"."<Hr>";  while (list($i,$Valor)=each($Nombre))   {     echo "Legajo: " . $i . " - ";     echo "Nombre: " . $Valor;     echo "<Br>";    } ?></Body></Html>

                       La función list(), almacena en los parámetros ($i, $Valor), el índice y el valor devuelto por la función each(), que tiene como parámetro el vector puesto en juego. Además, la función list(), avanza automáticamente el puntero al siguiente elemento del vector, y en caso de que el vector haya llegado al final, la función devuelve false.

Vectores con índice de Texto

                       Un vector en PHP, no solamente debe contener índice numérico, sino también, puede ser una letra o un texto.

Ejemplo Práctico 6:                         Cargar en un vector algunas ciudades del mundo, de manera que el índice del vector contenga los tres primeros caracteres de la ciudad almacenada.

<Html><Title>  Ejemplo 6.php  </Title><Body><?Php  // Inicializacion del Vector  $Ciudad = array("Par" => "Paris",                            "Lon" => "Londres",                            "Ate" => "Atenas",                            "Ber" => "Berlin",                            "Lim" => "Lima");

  echo "<H2>"."Vector de Ciudades";  echo "<H3>"."<Hr>";  while (list($i,$Valor)=each($Ciudad))   {     echo "Posición: " . $i . " - ";     echo "Contenido: " . $Valor;

Page 61: Tutorial de PHP

     echo "<Br>";    } ?></Body></Html>

La salida obtenida es:

Funciones para utilizar con Arreglos

Se describen a continuación, algunas funciones de utilidad para el manejo de arreglos.Función sort()                        Esta función permite ordenar los elementos de un arreglo (vector) de menor a mayor, en orden numérico o alfabético, con el siguiente orden:Primero se ordenarán los números, luego los signos de puntuación y por último las letras.

Ejemplo 1:                        Cargar en un arreglo nombre de personas y luego mostrarlos ordenados de menor a mayor.

<Html><Title>  Ejemplo1-Sort.php  </Title><Body>

Page 62: Tutorial de PHP

<?Php  // Inicializacion del Vector  $Nombres = array("Maria", "Luis", "Alberto", "Cesar", "Adriana");

  // Ordenamiento del vector  sort($Nombres);

  echo "<H2>"."Vector de Nombres ordenados";  echo "<H3>"."<Hr>";  while (list($i,$Valor)=each($Nombres))   {     echo "Posición: " . $i . " - ";     echo "Contenido: " . $Valor;     echo "<Br>";    } ?></Body></Html>

 Nota:            Si se utiliza la función sort() con índices de texto, se observa que, una vez ordenado, ha cambiado los índices de texto por números, comenzando de cero en adelante. Para salvar este inconveniente se utiliza la función asort().  

Page 63: Tutorial de PHP

Función asort()                                    Esta función permite ordenar arreglos con índices de texto, manteniendo el valor de sus índices. Tiene como parámetro el vector, y el ordenamiento es de menor a mayor.

Ejemplo 2:                        Ordenar alfabéticamente de menor a mayor el vector de ciudades del mundo del ejemplo Nro. 6. de la página anterior.

<Html><Title>  Ejemplo2-Asort..php  </Title><Body><?Php  // Inicializacion del Vector  $Ciudad = array("Par" => "Paris",                            "Lon" => "Londres",                            "Ate" => "Atenas",                            "Ber" => "Berlin",                            "Lim" => "Lima");  asort($Ciudad);

  echo "<H2>"."Vector de Ciudades ordenado";  echo "<H3>"."<Hr>";  while (list($i,$Valor)=each($Ciudad))   {     echo "Posición: " . $i . " - ";     echo "Contenido: " . $Valor;     echo "<Br>";    } ?></Body></Html>

Page 64: Tutorial de PHP

Función rsort()                                    Es la inversa de la función sort(). Permite ordenar un vector pasado como parámetro en forma descendente, es decir de mayor a menor.

Ejemplo 3:                        Modificar el ejemplo anterior para mostrar el vector de nombres de personas en forma descendente.

<Html><Title>  Ejemplo3-Rsort.php  </Title><Body><?Php  // Inicializacion del Vector  $Nombres = array("Maria", "Luis", "Alberto", "Cesar", "Adriana");

  // Ordenamiento del vector descendente  rsort($Nombres);

  echo "<H2>"."Vector de Nombres ordenados en forma descendente ";  echo "<H3>"."<Hr>";

  while (list($i,$Valor)=each($Nombres))   {     echo "Posición: " . $i . " - ";

Page 65: Tutorial de PHP

     echo "Contenido: " . $Valor;     echo "<Br>";    } ?></Body></Html>

Función arsort()                                    Es la inversa de la función asort(). Permite ordenar un vector con índices de texto pasado como parámetro en forma descendente, es decir de mayor a menor.

Ejemplo 4:                        Modificar el ejemplo 2 para mostrar el vector de ciudades en forma descendente.

<Html><Title>  Ejemplo4-Arsort.php  </Title><Body><?Php  // Inicializacion del Vector  $Ciudad = array("Par" => "Paris",                            "Lon" => "Londres",                            "Ate" => "Atenas",                            "Ber" => "Berlin",

Page 66: Tutorial de PHP

                             "Lim" => "Lima");  arsort($Ciudad);

  echo "<H2>"."Vector de Ciudades ordenado en forma descendente";  echo "<H3>"."<Hr>";

  while (list($i,$Valor)=each($Ciudad))   {     echo "Posición: " . $i . " - ";     echo "Contenido: " . $Valor;     echo "<Br>";    } ?></Body></Html>

Función ksort()                                    Permite ordenar un arreglo por el índice del mismo, sin tener encuenta los elementos.

Ejemplo 5:                        Cargar nombres de paises como índices con sus respectivas monedas y mostrarlos ordenados por los índices.

Page 67: Tutorial de PHP

<Html><Title> Ejemplo5-Ksort.php </Title><Body><?Php// Inicializacion del Vector

$Ciudad = array("Francia" => "Franco",                          "Japon" => "Yen",                          "Brasil" => "Real",                          "Italia" => "Lira",                          "Argentina" => "Peso");arsort($Ciudad);

ksort($Ciudad);

echo "<H2>"."Vector ordenado por paices ";echo "<H3>"."<Hr>";while (list($i,$Valor)=each($Ciudad)){      echo "Posición: " . $i . " - ";      echo "Contenido: " . $Valor;      echo "<Br>";}?></Body></Html>

Page 68: Tutorial de PHP

                                                                                                                                                                                                                  

Función krsort()                       Ordena un arreglo de acreudo al índice del mismo en orden descendente, es decir de mayor a menor.

Ejemplo 6:                        Mostrar en orden inverso el listado del vector del ejemplo número 5.

<Html><Title> Ejemplo6-Krsort.php </Title><Body><?Php// Inicializacion del Vector

$Ciudad = array("Francia" => "Franco",                          "Japon" => "Yen",                          "Brasil" => "Real",                          "Italia" => "Lira",                          "Argentina" => "Peso");arsort($Ciudad);

krsort($Ciudad);

Page 69: Tutorial de PHP

echo "<H2>"."Vector de ordenado por paices en forma descendente";echo "<H3>"."<Hr>";while (list($i,$Valor)=each($Ciudad)){     echo "Posición: " . $i . " - ";     echo "Contenido: " . $Valor;     echo "<Br>";}?></Body></Html>

Función shuffle()                                    Permite mezclar los elementos de un arreglo, es decir, que cambie en forma aleatoria el orden de los elementos del arreglo que se le pase como parámetro.

Ejemplo 7:                        Mezclar los elementos del vector del ejercicio 5.

<Html><Title> Ejemplo7-Shuffle.php </Title><Body><?Php// Inicializacion del Vector

Page 70: Tutorial de PHP

$Ciudad = array("Francia" => "Franco",                          "Japon" => "Yen",                          "Brasil" => "Real",                          "Italia" => "Lira",                          "Argentina" => "Peso");arsort($Ciudad);

shuffle($Ciudad);

echo "<H2>"."Vector ordenado en forma aleatoria ";echo "<H3>"."<Hr>";while (list($i,$Valor)=each($Ciudad)){echo "Posición: " . $i . " - ";echo "Contenido: " . $Valor;echo "<Br>";}?></Body></Html>

Nota: Se observa en este caso que las posiciones han cambiado automáticamente a valores numéricos. Comenzando por la posición cero.Si se vuelve a ejecutar el programa, se obtiene otro orden de contenido.

Page 71: Tutorial de PHP

Función range()                                    Con esta función, se puede asignar a los elementos de un arreglo los valores comprendidos en un determinado rango. Acepta como parámetros los valores de inicio y fin de los datos a almacenar.

Ejemplo 8:                    Generar un vector con todos los valores comprendidos entre 100 y 150. Posteriormente imprimirlos uno a lado del otro.

<Html><Title> Ejemplo8-Range.php </Title><Body><?Php// Inicializacion del Vector$Numeros = range(100,150);

echo "<H2>"."Vector Generado";echo "<H3>"."<Hr>";while (list($i,$Valor)=each($Numeros)){      echo $Valor . " - ";}?></Body></Html>

Page 72: Tutorial de PHP

Esta función, también permite definir un rango entre letras. (Únicamente letras, si se pusiera una cadena, tomaría la primer letra).

Ejemplo 9:                  Asignar a un vetor las letras comprendidas entre “c” y “p”, y luego mostrarlas una al lado de la otra.

<Html><Title> Ejemplo9-Letras.php </Title><Body><?Php// Inicializacion del Vector$Letras = range("c","w");

echo "<H2>"."Letras Generadas";echo "<H3>"."<Hr>";while (list($i,$Valor)=each($Letras)){      echo $Valor . " - ";}?></Body></Html>

Page 73: Tutorial de PHP

También se puede generar valores en orden inverso para almacenarlos en un vector, simplemente colocando en el primer parámetro de la función range(), un valor superior al segundo parámetro.

Función array_fill()                                    Permite almacenar en un arreglo (Vector), un dato que se va a repetir consecutivamente una cierta cantidad pasada como parámetro.Los parámetros que acepta son tres, y tiene el siguiente formato:

$Vector = array_fill(Indice, Cantidad, Dato);

Indice indica cual será el primer elemento.Cantidad indica cuantos elementos se generarán.Dato es el valor con que se llenará el vector                             

Ejemplo 10:

<Html><Title> Ejemplo10-Array_fill.php </Title><Body><?Php// Inicializacion del Vector$Vector=array_fill(10,5,"PHP");

echo "<H2>"."Vector generado";echo "<H3>"."<Hr>";while (list($i,$Valor)=each($Vector)){      echo "Posición: " . $i . " - ";      echo "Contenido: " . $Valor;      echo "<Br>";}?></Body></Html>

Page 74: Tutorial de PHP

 En este ejemplo se definió un arreglo que comience en el índice 10, que contenga 5 elementos y almacene PHP como dato.

Función in_array()                                    Mediante esta función, se puede buscar un dato dentro de un arreglo. Si el dato existe dentro del arreglo, la función devuelve verdadero, de lo contrario devuelve falso.

Ejemplo 11:                        Cargar los días de la semana en un vector y luego almacenar en una variable un día cualquiera. Imprimir el vector y determinar si el cotenido de la variable se incuentra incluido en el vector.

<Html><Title> Ejemplo11-In_Array.php </Title><Body><?Php// Inicializacion del Vector$Dias=array("Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado");

$D = "Martes";echo "<H2>"."Vector de Días";echo "<H3>"."<Hr>";while (list($i,$Valor)=each($Dias))

Page 75: Tutorial de PHP

{      echo $Valor. " ";}echo "<Br>";echo "<Br>";

if (in_array($D,$Dias))echo "$D existe en el vector Dias";elseecho "$D no existe en el vector Dias";?></Body></Html>

Procesamiento de Cadenas

El lenguaje PHP ofrece una serie de herramientas para el procesamiento de cadenas, que es muy utilizado en mostrar datos con un cierto formato o en almacenar en una base de datos información de una manera determinada.A continuación se detallan algunas funciones para el manejo de cadenas:

Funciones: echo y print()                         Estas dos instrucciones se utilizan para mostrar una o varias cadenas en la pantalla. Generalmente se ha venido utilizando la instrucción echo en los ejemplos

Page 76: Tutorial de PHP

realizados, pero también es posible utilizar la función print(), con la diferencia de que en esta función, la cadena a imprimir debe estar entre paréntesis, cosa que con la instrucción echo, no es necesario.

Ejemplo:                 echo $Nombre;                 print ($Domicilio);

Funcion: printf()                         Esta función es similar a la función print(), pero permite dar un cierto formato a lo que se desea imprimir. La Sintaxis de esta función es:

                        printf("Formato", $cadena);

Formato debe ser una letra permitida.$cadena es la variable a imprimir.

Los tipos de formatos permitidos, son los siguientes:

Letra de Formato

Especificación de lo que realiza

b Expresa a la variable como número binarioc Expresa a la variable como carácter ASCIId Expresa a la variable como número decimalf Expresa a la variable como número de punto flotanteo Expresa a la variable como número octals Expresa a la variable como un string (cadena)x Expresa a la variable como número hexadecimal en

minúsculasX Expresa a la variable como número hexadecimal en

Mayúsculas

Para establecer que la letra es un formato de impresión, se debe colocar delante de ella el signo de porcentaje (%).

Ejemplo 1:                        Este ejemplo almacena el valor del sueldo en la variable $Sueldo, y luego lo muestra de diferente forma:

<Html><Title> Ejemplo1-Printf.php </Title><Body><?Php            $Sueldo = 2947.3262;            printf($Sueldo . "<Br>");

Page 77: Tutorial de PHP

            printf("%f", $Sueldo); printf("<Br>");            printf("$ %7.2f",$Sueldo); printf("<Br>");?></Body></Html>

Ejemplo 2:                         Asignar a una variable, una determinada cadena y posteriormente mostrarla en todos los formatos descriptos.

<Html><Title> Ejemplo2-Formatos.php </Title><Body><?Php            $cadena = "76.9 minutos";            printf("Resultado en formato binario: ");            printf("%b", $cadena);            printf("<Br>");            printf("Resultado según la tabla ASCII: ");            printf("%c", $cadena);            printf("<Br>");            printf("Resultado en formato decimal: ");            printf("%d", $cadena);            printf("<Br>");            printf("Resultado en formato float: ");            printf("%f", $cadena);            printf("<Br>");            printf("Resultado en formato octal: ");            printf("%o", $cadena);            printf("<Br>");

Page 78: Tutorial de PHP

            printf("Resultado en formato string: ");            printf("%s", $cadena);            printf("<Br>");            printf("Resultado en formato hexadecimal (minúscula): ");            printf("%x", $cadena);            printf("<Br>");            printf("Resultado en formato hexadecimal (mayúscula): ");            printf("%X", $cadena);?></Body></Html>

Funcion: sprintf()             Es similar a la función printf, con la diferencia de que no imprime el resultado en el navegador, sino que se utiliza para almacenar una cadena en una variable. La sintaxis es la siguiente:

 variable = sprintf ("Formato", cadena);

En este caso, sprintf,  devuelve en la variable el valor de la cadena transformado de acuerdo al Formato indicado. El Formato puede ser cualquier letra de las descriptas para la función printf.

Ejemplo 3:                     IDEM al ejemplo 2 utilizando sprintf.

Page 79: Tutorial de PHP

<Html><Title> Ejemplo3-Sprintf.php </Title><Body><?Php            $cadena = "76.9 minutos";            // Transformacion a binario            $variable = sprintf("%b<Br>",$cadena);            // Transformación a caracteres            $variable .= sprintf("%c<Br>", $cadena);            // Transformación a decimal            $variable .= sprintf("%d<Br>", $cadena);            // Transformación a float            $variable .= sprintf("%f<Br>", $cadena);            // Transformación a octal: ");            $variable .= sprintf("%o<Br>", $cadena);            // Transformación a string            $variable .= sprintf("%s<Br>", $cadena);            // Transformación a hexadecimal (minúscula)            $variable .= sprintf("%x<Br>", $cadena);            // Transformación a hexadecimal (mayúscula)            $variable .= sprintf("%X<Br>", $cadena);            echo $variable;?></Body></Html>

Funcion: strtoupper()                     Esta función permite transformar una cadena a mayúsculas.

Ejemplo 4:                     Almacenar una frase en una variable y posteriormente mostrarla en mayúsculas.

<Html><Title> Ejemplo4-StrToUpper.php </Title><Body><?Php            $frase = "Hoy es un día soleado.";            echo "<H3>";            echo "Frase ingresada: " . $frase;            echo "<Br><Br>";            echo "Frase en Mayúsculas: " . strtoupper($frase);?></Body></Html>

Page 80: Tutorial de PHP

           

 

Funcion: strtolower()                   Es la inversa de la función anterior, es decir que transforma una cadena en minúsculas.Ejemplo 5:                    Almacenar una frase en una variable y posteriormente mostrarla en minúsculas.

<Html><Title>  Ejejemplo5-StroLower.php  </Title><Body><?Php   $frase = "ESTE APUNTE ES DE PHP";   echo "<H3>";   echo "Frase ingresada: " . $frase;   echo "<Br><Br>";   echo "Frase en Minúsculas: " . strtolower($frase); ?></Body></Html>

Page 81: Tutorial de PHP

Funcion: ucwords()                         Convierte el primer carácter de cada palabra en mayúsculas.Ejemplo 6:                        Inicializar una variable con el nombre y apellido de una persona y posteriormente mostrarla con sus primeros caraceteres en mayúsculas.

<Html><Title>  Ejemplo6-UcWords.php  </Title><Body><?Php   $nombre = "marcelo rodriguez";   echo "<H3>";   echo "Cadena original: " . $nombre;   echo "<Br><Br>";   echo "Cadena convertida: " . ucwords($nombre); ?></Body></Htm>

Page 82: Tutorial de PHP

 

Funcion: trim()             Mediante esta función, se eliminan los espacios en blanco al inicio y al final de una cadena.. También elimina los caracteres de control: “\n”, “\r”, “\t” y “\0”.

Ejemplo 7:                         <Html><Title>  Ejemplo7-Trim.php  </Title><Body><?Php   $profesion = "\n\r\tTécnico Constructor \n\n";   echo "<H3>";   echo "Cadena original: " . $profesion;   echo "<Br><Br>";   echo "Cadena convertida: " . trim($profesion); ?></Body></Html>

Al ejecutar este ejemplo, no se observarán diferencias al visualizarlo en el navegador, pero si se observarán diferencias si se visualiza el código generado por el programa.

Funciones: ltrim() y chop()                                    Funcionan de forma similar a trim(), con la diferencia de que ltrim(), elimina espacios en blanco al principio de la cadena, mientras que chop(), elimina espacios en blanco al final de la cadena.

Page 83: Tutorial de PHP

Funcion: strlen()                 Esta función permite obtener la longitud de una cadena de caracteres pasada como parámetro.

Ejemplo 8:                    Almacenar en una variable una cadena de caracteres y luego mostrar la cantidad de caracteres que la constituyen.

<Html><Title>  Ejemplo8-Strlen.php  </Title><Body><?Php   $cadena = "PHP es un lenguaje de programación.";   echo "<H3>";   echo "Cadena : " . $cadena;   echo "<Br><Br>";   echo "Cantidad de caracteres: " . strlen($cadena); ?></Body></Html>

 Funcion: chr()               La función chr() recibe un valor numérico y devuelve el carácter de la tabla ASCII que le corresponde

Ejemplo 9:                         Imprimir la tabla ASCII desde el código 30 en adelante.<Html><Title>  Ejemplo9-Chr.php  </Title>

Page 84: Tutorial de PHP

<Body><?Php   echo "<H3>";   echo "<Table border=2 align=Center width=100%>";   $c=30;   for ($i=1; $i<24; $i++)    {     echo "<tr>";      for ($j=1; $j<=10; $j++)       {        echo "<th align=Center>" . $c . "</th>";        echo "<td align=Center>". chr($c) . "</td>";        $c++;       }     echo "</tr>";    }  echo "</Table>" ; ?></Body></Html>

Funcion: ord()             Es la función inversa a la chr(), es decir que dado un carácter como parámetro, la función ord(), devuelve el valor del código que le corresponde.

Ejemplo 10:                         Asignar a una variable un carácter y posteriormente mostrar el código que le corresponde:

<Html><Title>  Ejemplo10-Ord.php  </Title><Body><?Php   echo "<H3>";   $c = "L";   echo "El caracter: $c tiene como código: " .ord($c);?></Body></Html>

Funcion: number_format()                                    La función number_format permite dar un formato deseado a un valor numérico determinado. La sintaxis es la siguiente:

number_format(variable Numerica,                         Cantidad De Decimales,

Page 85: Tutorial de PHP

                         “Separador de decimales”,                          “Separador de Miles”) ;

Ejemplo 11:                        Dado un cierto valor numérico, imprimirlo con dos decimales separados por una coma, mostrando también los miles separados por puntos.

<Html><Title>  Ejercicio11-NumberFormat.php  </Title><Body><?Php   echo "<H3>";   $valor = 8546921546.4875;   echo "El valor corresponde a: ";   echo number_format($valor,2,",",".");?></Body></Html>

Funcion: substr()                         Permite extraer una porción de texto de la cadena pasada como parámetro. Su sintaxis es la siguiente:

substr(cadenaOriginal, lugarInicial, cantidadDeCaracteres)

cadenaOriginal:  Es la cadena de donde se extraerá el texto.lugarInicial:  Representa la posición desde donde se comenzarán a extraer el texto.CantidadDeCaracteres: Indica cuantos caracteres se extraerán. (Opcional).

Ejemplo 12:

Page 86: Tutorial de PHP

<Html><Title>  Ejemplo12-Subsrt.php  </Title><Body><?Php   echo "<H3>";   $cadena = "Alicia Martinez";   echo "Cadena Original: " . $cadena;   echo "<Br>";   echo "Tres primeros caracteres: ";   echo substr($cadena,0,3);   echo "<Br>";   echo "Seis caracteres a partir del octavo: ";   echo substr($cadena,7,6);   echo "<Br>";   echo "Cuatros caracteres comenzando desde el último: ";   echo substr($cadena,-4);?></Body></Html>

Funcion: ereg()             Permite buscar una cadena dentro de otra cadena, devolviendo un valor verdadero si encontró coincidencia, de lo contrario, devuelve falso.

Ejemplo 13:

<Html><Title>  Ejemplo13-Erg.php  </Title><Body>

Page 87: Tutorial de PHP

<?Php   echo "<H3>";   $cadena = "Carlos Javier Robles";   echo "Cadena Original: " . $cadena;   echo "<Br>";   $clave = "Javier";   echo "<Br>";   if (ereg($clave, $cadena))    {      echo "La palabra $clave existe en $cadena";    }    else    {      echo "La palabra $clave No existe es $cadena";    }?></Body></Html>

 Funcion: eregi()             Es similar a la función anterior, con la diferencia de que eregi() ignora las mayúsculas y minúsculas.

Funcion: ereg_replace()                                    Esta función ereg_replace permite buscar una cadena dentro de otra y reemplazar la cadena encontrada con una cadena definida.

La sintaxis es la siguiente:

Page 88: Tutorial de PHP

nuevaCadena = ereg_replace(claveBuscada,                                               nuevoDato,                                              cadenaOriginal);

Ejemplo 14:                 En el ejemplo anterior, buscar y reemplazar el nombre Javier por Martín.

<Html><Title>  Ejemplo14-EregReplace.php  </Title><Body><?Php   echo "<H3>";   $cadena = "Carlos Javier Robles";   echo "Cadena Original: " . $cadena;   echo "<Br>";   $clave = "Javier";   $nuevoNombre = "Martín";   $nuevaCadena = ereg_replace($clave, $nuevoNombre, $cadena);   echo "<Br>";   echo "Nuevo Nombre: " . $nuevaCadena ;?></Body></Html>

 

Funcion: eregi_replace()                                    Es similar a la función anterior, con la diferencia de que eregi_replace() no tiene en cuenta las mayúsculas y minúsculas.

Page 89: Tutorial de PHP

Funcion: split()             Permite separar una cadena de caracteres, pasándole como parámetro el carácter que actuará como separador. La cadena separada es almacenada en un arreglo. La sintaxis es la siguiente:

vector = split(caracter, cadena, cantidadDeElementos)

carácter: Es el carácter que actuará como separador.cadena: Es la cadena original.cantidadDeElementos: Es opcional, y determina cuantos elemento contendrá el vector generado. En caso de no indicarse, ajusta la cantidad automáticamente.

Ejemplo 15:                         Dada una cadena de caracteres, generar un arreglo (vector) que contenga como elementos a cada una de las palabras de la cadena.

<Html><Title>  Ejemplo15-Split.php  </Title><Body><?Php   echo "<H3>";   $cadena = "El invierno es muy frío";   echo "Cadena Original: " . $cadena;   echo "<Br><Br>";   $separador = " ";   $v = split($separador, $cadena);   $cantidad = count($v);   for ($i=0; $i<$cantidad; $i++)    {      echo "Elemento [$i]: $v[$i] <Br>";    }?></Body></Html>

Page 90: Tutorial de PHP

Ejemplo 16:                         Idem al anterior, pero guardando únicamente tres elementos en el vector.

<Html><Title>  Ejemplo16-Split.php  </Title><Body><?Php   echo "<H3>";   $cadena = "El invierno es muy frío";   echo "Cadena Original: " . $cadena;   echo "<Br><Br>";   $separador = " ";   $v = split($separador, $cadena, 3);   $cantidad = count($v);   for ($i=0; $i<$cantidad; $i++)    {      echo "Elemento [$i]: $v[$i] <Br>";    }?></Body></Html>

Page 91: Tutorial de PHP

Funcion: ucfirst()                         Permite pasar a mayúscula el primer carácter de una cadena. La función ucfirst() es útil cuando se desea imprimir nombres propios.

Ejemplo 17:

<Title>  Ejemplo17-Ucfirst.php  </Title><Body><?Php   echo "<H3>";   $cadena = "alejandra";   echo "Cadena Original: " . $cadena;   echo "<Br><Br>";   echo "Cadena procesada: " . ucfirst($cadena);   echo "<Br><Br>";?></Body></Html>

 

Funcion: ucwords()                         Premite cambiar a mayúsculas el primer carácter de todas las palabras de una cadena.

Ejemplo 18:

<Title>  Ejemplo18-Ucwords.php  </Title><Body>

Page 92: Tutorial de PHP

<?Php   echo "<H3>";   $cadena = "javier es buen alumno";   echo "Cadena Original: " . $cadena;   echo "<Br><Br>";   echo "Cadena procesada: " . ucwords($cadena);   echo "<Br><Br>";?></Body></Html>

Funcion: strcmp() Compara dos string (cadenas).Ejemplo: strcmp(<string1>,<string2>)

Retorna cero si las dos cadenas son exactamente iguales.Retorna mayor a cero si <string1> es mayor alfabéticamente.Retorna menor a cero en caso contrario$cadena1="lorena";$cadena2="analia";if (strcmp($cadena1,$cadena2)>0){  echo $cadena1." es mayor alfabéticamente que ".$cadena2;}

De todos modos para comparar si dos string son iguales está permitido utilizar el operador == if ($cadena1=="lorena"){

Page 93: Tutorial de PHP

  echo 'La variable $cadena1 almacena la cadena lorena';}Se imprime: La variable $cadena1 almacena la cadena lorena (Recordar que si utilizamos las comillas simples, las variables no se sustituyen por el contenido de las mismas)

La función strcmp es sensible a mayúsculas y minúsculas, si queremos ver si dos cadenas son iguales insensible a mayúsculas y minúsculas debemos emplear la función strcasecmp.

Funcion: strpos() Esta función devuelve la posición que se encuentra en una cadena fuente una cadena clave. La sintaxis es la siguiente:

$Pos = strpos(cadenaFuente, cadenaClave, comienzo);

cadenaFuente: Es la cadena que será recorrida.cadenaClave: Es la cadena buscada.comienzo: Es opcional, y determina de que posición comenzará a explorar. Si se ignora, comienza desde el principio, posición cero.

Ejemplo 19: Almacenar en una cadena, una frase y luego una palabra clave a buscar su posición. Imprimir la posición que le corresponde.

<Html><Title>  Ejemplo19-Strpos.php  </Title><Body><?Php   echo "<H3>";   $cadena = "En un ecosistema conviven diversos tipos de organismos";   $clave = "eco";   echo "Cadena Original: " . $cadena;   echo "<Br><Br>";   echo "Clave buscada: " . $clave;   echo "<Br><Br>";   $p = strpos($cadena, $clave);   if ($p!="")    {     echo "La clave se encuentra en la posición: $p" ;    }    else    {     echo "No existe la clave en la cadena fuente";    }?></Body></Html>

Page 94: Tutorial de PHP

Tener presente que la primera posición es Cero.

Administración de Archivos

Abrir Archivos

Para abrir archivos, se utiliza la función fopen, cuya sintaxis es la siguiente:

fopen (nombre_archivo, modo);

En donde:nombre_archivo: el nombre del archivo que se quiere abrir o crear.modo: indica de que forma se procederá a la apertura del archivo. Los distintos modos se comentan en los ejemplos siguientes:

fopen (archivo.txt, a)Abre el archivo en modo de agregar información. Los datos que se ingresen se agregarán al final del mismo, sin eliminar el contenido que tuviera. En este modo, si el archivo no existe, lo creará en ese momento.

fopen (archivo.txt, a+)Abre el archivo en modo de agregar información y además leerlo. Los datos que se ingresen se agregarán al final del mismo, sin eliminar el contenido que tuviera. En este modo, si el archivo no existe, lo creará en ese momento.

fopen (archivo.txt, r)Abre el archivo en modo lectura solamente. El archivo debe existir.

Page 95: Tutorial de PHP

fopen (archivo.txt, r+)Abre el archivo en modo lectura y escritura. La información que se agregue, será insertada al principio del archivo.

fopen (archivo.txt, w)Abre el archivo en modo escritura solamente. Si el archivo no existe, lo crea, y si existe con algún contenido, elimina toda su información, dejándolo en blanco.

fopen (archivo.txt, w+)Abre el archivo en modo escritura y lectura. Si el archivo no existe, lo crea, y si existe con algún contenido, elimina toda su información, dejándolo en blanco.

Cerrar Archivos

Luego de abrir un archivo y realizar las operaciones necesarias en él, se debe cerrarlo. Para cerrar un archivo se utiliza la función fclose() que recibe como parámetro la variable del archivo que se está utilizando.

Ejemplo:

$f = fopen("archi.txt", r);fclose($f);

Escritura en un Archivo

Para guardar información en un archivo de texto se utilizan las funciones fputs() y fwrite(), que se detallan a continuación:

Función fputs()

Permite escribir en un archivo. Recibe tres parámetros, de los cuales los dos primeros son obligatorios y el tercero es opcional. La sintaxis es la siguiente:

fputs ( variable_fichero, texto, largo)

El primer parámetro es el puntero al archivo, es decir la variable de trabajo.El segundo parámetro es el texto que se desea escribir.El tercer parámetro es el largo de la cadena, si no se coloca, se grabará la cadena entera.

Ejemplo 1: El siguiente ejemplo muestra un pequeño programa que graba una cadena de texto en un archivo llamado Texto1.txt.

Page 96: Tutorial de PHP

<Htm> <Title>  Ejemplo01-Fputs.php  </Title><Body> <?Php  $Texto="La materia se transforma consumiendo o liberando energía.";  $f = fopen("Texto1.txt",w);  fputs($f, $Texto);  echo "Texto almacenado correctamente";  fclose($f); ?></Body></Htm>

Al mismo resultado se hubiera llegado utilizando la función fwrite(), es decir, si en el ejemplo anterior se reemplaza fputs() por fwrite(), el resutado del programa no se alteraría.

Lectura de un Archivo

Para poder ver el contenido de un archivo de texto se pueden utilizar varias funciones:

Función fpassthru()                         Permite ver el contenido completo de un archivo. Tiene como parámetro la variable archivo utilizada para abrirlo.

Ejemplo 2:

El siguiente ejemplo lee el archivo de texto grabado en el ejemplo 1.<Htm> <Title>  Ejemplo02-Fpassthu.php  </Title><Body>

 <?Php  $nombre="Texto1.txt";  $f = @fopen($nombre,r) or die("Error al abrir el archivo: $nombre");  echo "Texto:" . "<Br>";  fpassthru($f);  echo "<Br><Br>";  echo "El texto se ha leído correctamente";  fclose($f); ?>

</Body></Htm>  En primera instancia, se abre el archivo en modo lectura (r) y se utiliza la instrucción die()

Page 97: Tutorial de PHP

para poder imprimir un mensaje de error cuando el fichero a leer no exista. Con la instrucción fpassthru() se lee y se muestra el archivo.

Función fread()             Permite leer parte de un archivo abierto. Esta función tiene dos parámetros y su sintaxis es la siguiente:

fread(variable_fichero, cantidad);

variable_fichero: es el puntero al archivo abierto de trabajo.cantidad: es la cantidad de caracteres que se pretende leer.

Ejemplo 3: En el próximo ejemplo se leen los primeros 24 caracteres del texto grabado en el ejemplo 1.

<Htm> <Title>  Ejemplo03-Fread.php  </Title><Body> <?Php  $nombre="Texto1.txt";  $f = @fopen($nombre,r) or die("Error al abrir el archivo: $nombre");  echo "<H3>";  echo "Texto leido:" . "<Br>";  echo fread($f,24);  echo "<Br><Br>";  echo "Se han leído los 24 primeros caracteres";  fclose($f); ?></Body></Htm>

Page 98: Tutorial de PHP

Función fgetc()             Permite leer un archivo de texto carácter por carácter, también se puede recorrer el archivo parcial o totalmente.

Ejemplo 4: En este ejemplo se lee el archivo completo utilizando la función fgetc(), mediante un ciclo leyendo carácter por carácter.

<Htm> <Title>  Ejemplo04-Getc.php  </Title><Body> <?Php  $nombre="Texto1.txt";  $f = @fopen($nombre,r) or       die("Error al abrir el archivo: $nombre");  echo "<H3>";  echo "Texto leido:" . "<Br>";  while (!feof($f))   {    echo fgetc($f);   }  echo "<Br><Br>";  echo "Texto leído completamente";  fclose($f); ?></Body></Htm>

Para el ciclo se utilizó la estructura while(), que tiene como condición a la función feof(). Esta función significa fin de fichero (end of file), y se encarga de indicar si se llegó al final del archivo o no. En el ejemplo, la función está negada con el símbolo de admiración delante, por lo tanto, la línea se lee de la siguiente manera:  Mientras no sea el fin del fichero, procese. Lo que procesará será la función fgetc(), que leerá caracteres hasta que se termine en archivo, saliendo del ciclo while().El resultado de este ejemplo es el siguiente:

Page 99: Tutorial de PHP

Función fgets() Permite leer una cadena de texto de un archivo, tiene dos parámetros y su sintaxis es la siguiente:

fgets (variableFichero, longitud);

variable_Fichero: es el puntero al archivo abierto de trabajo.longitud: Es opcional, y es la cantidad de caracteres – 1, que se pretende leer. Es decir que si se pretende leer 24 caracteres por ejemplo, la longitud debería ser de 25.

Ejemplo 5:

<Htm> <Title>  Ejemplo05-Fgets.php  </Title><Body><?Php  $nombre="Texto1.txt";  $f = @fopen($nombre,r) or       die("Error al abrir el archivo: $nombre");  echo "<H3>";  echo "Texto leido:" . "<Br>";  echo fgets($f,25);  fclose($f); ?></Body></Htm>

Función file() Esta función permite almacenar un texto en un vector. El almacenamiento se producirá línea por línea, es decir que cada elemento del vector contendrá una línea de texto.

Page 100: Tutorial de PHP

Ejemplo 6: Guardar en un archivo, un determinado texto y posteriormente almacenarlo línea por línea en un vector.

<Htm> <Title>  Ejemplo06-File.php  </Title><Body> <?Php  // Almacenamiento del Texto

  $Texto="En el universo hay materia y energía, la materia se halla en ciertos cuerpos llamados cuerpos celestes. Algunos cuerpos son frios y no emiten energía, otros son calientes y emiten luz y calor.";

  $f = fopen("Texto2.txt",w);  fwrite($f, $Texto);  fclose($f);

  // Generación del vector

  $nombre="Texto2.txt";  $f = @fopen($nombre,r) or die("Error al abrir el archivo: $nombre");  fclose($f);  $v = file($nombre);  $cantidad = count($v);  echo "<H3>";  echo "Vector Generado:" . "<Br>";  for ($i=0; $i<$cantidad; $i++)   {    echo "Posición [$i]: $v[$i]" . "<Br>";   } ?></Body></Htm>

Page 101: Tutorial de PHP

 Recorrido de un Archivo Las siguientes funciones muestran como se posiciona en el archivo en un lugar determinado, leer una porción de texto y tomar la posición de donde se encuentra el puntero en el archivo.

Función rewind()             La función rewind() mueve el puntero al inicio del archivo. Recibe como parámetro a la variable fichero que se abrió previamente.

Función fseek()             La función fseek() permite situar el puntero en un lugar específico. Tiene dos parámetros, el primero es la variable fichero, y el segundo es el número de carácter donde se quiere posicionar. (Tener presente de que el primer carácter es el número 0).

Ejemplo 7: El siguiente ejemplo, se posiciona en el carácter número 19 y lee los 18 caracteres siguientes del Texto2.txt, luego en el próximo renglón, se posiciona en el carácter número 15 y lee los siguientes 4 caracteres y por último, se posiciona al principio con la función rewind() y se leen los primeros 14 caracteres.

<Htm> <Title>  Ejemplo07-Fseek.php  </Title><Body> <?Php  $nombre="Texto2.txt";  $f = @fopen($nombre,r) or die("Error al abrir el archivo: $nombre");

Page 102: Tutorial de PHP

  echo "<H3>";  fseek($f, 19);  echo fread($f, 18);  echo "<Br>";  fseek($f, 15);  echo fread($f, 4);  echo "<Br>";  rewind($f);  echo fread($f, 14);

  fclose($f); ?></Body></Htm>

Función ftell()             Permite obtener la posición de donde está el puntero en el archivo. Recibe como parámetro la variable fichero y devuelve el valor numérico de la posición en que está el puntero.

Ejemplo 8:                  Leer un archivo y mostrar la posiciones de cada uno de los caracteres que lo constituyen.

<Htm> <Title>  Ejjemplo08-Ftell.php  </Title><Body> <?Php  $nombre="Texto1.txt";

Page 103: Tutorial de PHP

  $f = @fopen($nombre,r) or       die("Error al abrir el archivo: $nombre");  echo "<H3>";  echo "Archivo: ";  echo fgets($f);  echo "<Br>";  rewind($f);  while (!feof($f))   {     echo " Posición (" . ftell($f) . ") : ";     echo fgetc($f);     echo "<Br>";   }  fclose($f); ?></Body></Htm>

Funciones Útiles para el manejo de Archivos Se describen a continuación funciones útiles para el manejo de archivos, entre ellas se verá como copiar, renombrar y obtener información de los archivos almacenados.

Page 104: Tutorial de PHP

Función copy()             Esta función permite realizar una copia de un archivo determinado. Necesita dos parámetros, que son: el nombre del archivo origen y el nombre del archivo destino. Si la copia se realiza con éxito devuelve verdadero, de lo contrario devuelve falso.

Ejemplo 9: Realizar una copia del archivo Texto1.txt en el archivo Texto1.bak.

<Htm> <Title>  Ejemplo09-Copy.php  </Title><Body> <?Php  $origen="Texto1.txt";  $f = @fopen($origen,r) or die("Error al abrir el archivo: $origen");  echo "<H3>";  echo "Archivo: ";  echo fgets($f);  echo "<Br>";  fclose($f);  $destino="Texto1.bak";  if (copy($origen, $destino))   {    echo "La copia se realizó con éxito";   }   else   {    echo "No se pudo realizar la copia";   } ?></Body></Htm>

Función file_exists()             La función file_exists() permite determinar la existencia o no del archivo pasado como parámetro. Devuelve verdadero en caso de existir el archivo, en caso contrario devuelve falso. Generalmente se utiliza esta función cuando se pretende borrar el archivo, renombrarlo o simplemente abrirlo.

Ejemplo 10: Verificar si el archivo Texto1.txt existe o no.

<Htm> <Title>  Ejemplo10-File_Exists.php  </Title><Body> <?Php   $nombre="Texto1.txt";

Page 105: Tutorial de PHP

   if (file_exists($nombre))    {     echo "El $nombre existe";    }    else    {     echo "El $nombre no existe";    } ?></Body></Htm>

Función rename()             Permite cambiar el nombre a un archivo. Acepta dos parámetros, el primero es el nombre actual del archivo y el segundo es el nombre nuevo que se le quiere dar.

Ejemplo 11:             Cambiar el nombre del archivo Texto1.bak por Archi1.txt.

<Htm> <Title>  Ejemplo11-Rename.php  </Title><Body> <?Php   $nombreActual="Texto1.bak";   $nombreNuevo ="Archi1.txt";   if (file_exists($nombreActual))    {     rename($nombreActual, $nombreNuevo);     echo "El nombre se cambió correctamente";    }    else    {     echo "No se encontro el archivo $nombreActual";    } ?></Body></Htm>

Función unlink()             Esta función se utiliza para borrar un archivo. Recibe como parámetro el nombre del archivo a borrar.

Ejemplo 12:             Borrar el archivo Archi1.txt.

Page 106: Tutorial de PHP

<Htm> <Title>  Ejemplo12-Unlink.php  </Title><Body> <?Php   $nombre="Archi1.txt";   if (file_exists($nombre))    {     unlink($nombre);     echo "El archivo $nombre se borró correctamente";    }    else    {     echo "No se encontro el archivo $nombre";    } ?></Body></Htm>

fileatime() y filemtime() La función fileatime() devuelve la última fecha de acceso a un archivo determinado y la función filemtime(), devuelve la última fecha de modificación de un archivo. Ambas reciben como parámetro el nombre del archivo.

Ejemplo 13:             Mostrar las últimas fechas de acceso y de modificación del archivo Texto2.txt.

<Htm> <Title>  Ejemplo13-Filetime.php  </Title><Body> <?Php   $nombre="Texto2.txt";   echo "<H3>";   if (file_exists($nombre))    {     echo "Archivo: $nombre" ;     echo "<Br><Br>";     echo "Última fecha de acceso: ";     echo date("d/m/Y",fileatime($nombre));     echo "<Br><Br>";     echo "Última fecha de modificación: ";     echo date("d/m/Y",filemtime($nombre));    }    else    {     echo "No se encontro el archivo $nombre";    }

Page 107: Tutorial de PHP

 ?></Body></Htm>

En este ejemplo también se utilizó la función date(), que tiene por finalidad darle un formato a la fecha mostrada. Tiene dos parámetros, el primero es el formato y el segundo es un número entero, que en este caso es el valor devuelto por las funciones fileatime() y filemtime().

Función date()             Permite darle un format a una fecha o a una hora. Su sintasix es la siguiente:

date( Formato, Fecha_Hora );

Las opciones de Formato que se pueden emplear, son las siguientes:

Opción Formatoa “am” o “pm”A “AM” o “PM”d Día del mes, 2 dígitos con ceros a la izquierdaD Día de la semana en texto (Ingles) con 3 letras . Ej :  FriF Mes en texto completo (Inglés). Ej : Januaryh Hora de “01” a  “12”H Hora de “00” a  “23”g Hora sin ceros de “1” a  “12”G Hora sin ceros de “0” a  “23”i Minutos de “00” a  “59”j Día del mes sin cero de “1” a  “31”l Día de la semana en texto completo (Inglés). Ej: FridayL “1” o  “0” según el año sea bisiesto o no m Número de mes de “01” a  “12”M Mes en texto (Inglés) tres letras. Ej: Jans Segundos de “00” a  “59”S Sufijo ordinal en Inglés en texto. Ej: “th”  o  “nd”t Número de días del mes dado de “28” a  “31”U Segundosw Día de la semana en número, de 0(Domingo) a 6(Sábado)Y Año cuatro cifras. Ejemplo: “2005”y Año dos cifras. Ejemplo: “05”z Día del año entre “0” y “365”Z Diferencia horaria en segundos (de “-43200”  a  “43200”

Page 108: Tutorial de PHP

Ejemplo 14:             Mostrar la fecha y la hora actual.

<Htm> <Title>  Ejemplo14-Date.php  </Title><Body> <?Php   function nombreMes($m)    {     switch ($m)      {        case 1: return "Enero";        case 2: return "Febrero";        case 3: return "Marzo";        case 4: return "Abril";        case 5: return "Mayo";        case 6: return "Junio";        case 7: return "Julio";        case 8: return "Agosto";        case 9: return "Septiembre";        case 10: return "Octubre";        case 11: return "Noviembre";        case 12: return "Diciembre";      }    }   echo "<H3>";   echo "La fecha actual en formato (dd/mm/aaaa) es: ";   echo date("d/m/Y");   echo "<Br><Br>";   $dia = date("j");   $mes = nombreMes(date("m"));   $anio = date("Y");   $fecha = $dia." de ".$mes." de ".$anio;   echo "La fecha actual en formato literal es: " ;   echo $fecha . "<Br><Br>";   echo "La hora actual es: " . date("H:i:s  A");   echo "<Br><Br>";   echo "Han transcurrido: ";   echo date("z"). " días del año " . date("Y"); ?></Body></Htm>

Page 109: Tutorial de PHP

Función filesize()             Esta función devuelve el tamaño del archivo que se le pasa como parámetro. El valor devuelto es en cantidad de  caracteres.

Ejemplo 15:                      Determinar la cantidad de caracteres que contiene el archivo llamado Texto1.txt.

<Htm> <Title>  Ejemplo15-Filesize.php  </Title><Body> <?Php   $nombre="Texto1.txt"; echo "<H3>";   if (file_exists($nombre))    {     echo "Tamaño de $nombre: ";     echo filesize($nombre);    }    else    {     echo "No se encontro el archivo $nombre";    } ?></Body></Htm>

Page 110: Tutorial de PHP

Base de Datos (1-2)

Se define a una Base de Datos, como una colección de datos almacenados en  una cierta cantidad de ficheros que reciben el nombre de Tablas. Es decir que una Base de Datos es básicamente un conjunto de Tablas que guardan una cierta relación ente ellas. Estas Tablas están conformadas por Registros y estos a su vez por Campos. Cada Campo debe tener un nombre y un cierto tipo de acuerdo a las características del  dato que almacenará.

 

               La mayoría de los sitios web, que generalmente manejan un volumen de información importante, utilizan base de datos para poder almacenar información y modificarla o borrarla en tiempo real.

Tipos de Base de Datos                Se distinguen mochos tipos de Base de Datos en el mercado, de distintos fabricantes, con alguna diferencias en sus aspectos funcionales. Las Base de Datos mayormente usadas son:

1. Oracle 2. Mysql 3. MS SQL Server 4. Acces

Concepto de Base de Datos Nativas yBase de Datos Genéricas

               Las Base de Datos nativas son mas rápidas que las Bases de Datos que necesitan interface, como por ejemplo: ODBC (Open Data Base Conectivity) o JDBC (Java Data Base Conectivity). La rapidez es debido a que las Base de Datos “nativas” no necesitan realizar ningún paso para conectar la interfaz con el motor de Base de Datos, mientras que una “no nativa”, necesita de un interprete como ODBC, o similares para conectarse con la

Page 111: Tutorial de PHP

interfaz.La ventaja de usar una Base de Datos Genérica, es que se puede cambiar de Base de Datos fácilmente sin realizar cambios en el programa. PHP soporta interface tanto con Base de Datos nativas como genéricas.

Diseño de Base de Datos

            Para el diseño de una Base de Datos, se sugiere dedicar un tiempo al análisis de los datos y al tipo de aplicación a desarrollar, además también se debe prestar interés a la relación entre los datos de las diferentes tablas. El análisis no es algo que se aprende en un instante, sino que requiere ejercitación y práctica.

               La interacción con la Base de Datos se realiza a través del lenguaje SQL (Structured Query Language) que es el estándar para el acceso y manipulación de información de una Base de Datos Relacional. SQL es soportado por la mayoría de las Base de Datos Relacionales, aunque cada una tiene sus particularidades.

Base de Datos (2-2)

Base de Datos Relacionales

               Existen varios modelos de Base de Datos, entre ellos están:El modelo Relacional, el modelo Jerárquico, el modelo de objetos, etc. El modelo Relacional, que es el que se estudiará en este tutorial, formaliza los conceptos de Tablas, relaciones, claves, etc., y proponen métodos y normas para diseñar Base de Datos garantizando la integridad de la información que contienen.

Relaciones

               En el método de Base de Datos Relacionales, las Tablas se vinculan entre sí mediante una o más columnas cuyos valores son iguales en una y otra Tabla. Cada relación une dos Tablas de tres formas distintas, que son:

1. Uno a uno: Cada fila de la primera tabla se corresponde con una fila de la segunda. Por ejemplo, se tiene una tabla con la información de pilotos y otra tabla con la información de automóviles. La relación es que a cada fila de la tabla de pilotos le corresponde solo una de la tabla de automóviles, de esta manera se puede saber que automóvil le corresponde a cada piloto.

2. Uno a muchos: Cada fila de la primera tabla se corresponde con una o más filas de la segunda tabla. Por ejemplo una tabla de Rubros de artículos y otra tabla con los

Page 112: Tutorial de PHP

artículos. A cada fila de la primera, es decir, a cada fila de Rubros, le corresponde varias de filas artículos que pertenecen a un mismo rubro.

3. Muchos a Muchos: Varias filas de la primera tabla se corresponde con varias de la segunda. Un ejemplo sería una tabla de recetas de cocina y una tabla de ingredientes, cada receta lleva varios ingredientes y a su vez cada ingrediente puede pertenecer a varias recetas.

Querys

Un query es una consulta que se le pasa a una Base de Datos para que esta ejecute dicha consulta. Los query se escriben en lenguaje SQL.

               Por ejemplo si se tuviera un programa del tipo Agenda que permitiera guardar los nombres de personas con sus teléfonos y direcciones, cuando se busque algún teléfono o nombre, lo que se está haciendo es un simple query (consulta) a la Base de Datos del programa.               En forma sencilla una consulta tendría los siguientes pasos:

1. Ingresar la consulta, por ejemplo a través de un formulario. 2. Conectarse a la Base de Datos, donde se encuentra la información. 3. Ejecutar la consulta en la Base de Datos. 4. Mostrar los Resultados.

Estos serían los pasos a seguir en cualquier sistema para realizar la consulta. Para realizar estas operaciones hay varias formas. En este tutorial se verá como se realizan las consultas utilizando la base de datos de Mysql.

Administradores de Base de Datos

 Las funciones típicas que permiten los administradores de base de datos Mysql son: creación y borrado de bases de datos y las tablas, así también como realizar altas, bajas, modificaciones y funciones de importación y exportación.Algunos administradores de base de datos Mysql son gratuitos y se lo pueden bajar de Internet sin ningún problema.

Entre los más utilizados están: PhpMyAdmin, SQLyog, MySQL-Front y MyMaestro.

PhpMyAdmin

               Es uno de los preferidos por la mayoría de los desarrolladores de páginas web, se lo puede bajar de los sitios:http://phpmyadmin.uptodown.com/  en su sección carga externa gratuita.

http://www.phpmyadmin.net  en la sección download.

Page 113: Tutorial de PHP

               Una vez bajado, se debe llevar la carpeta completa de PhpMyAdmin a la carpeta donde lee el servidor apache de php. Si todo resultó correcto, iniciar Apache y abrir la página index.php de la carpeta PhpMyAdmin, se deberá mostrar una pantalla como la siguiente:

SQLyog

               Es uno de los Administradores de de Base de Datos mas simple de aprender y trabajar. Se lo puede descargar de la página:

http://sqlyog-community-edition.softonic.com/

               Es una interfaz gráfica diseñada especialmente para trabajar de forma más rápida y cómoda con el servidor de base de datos MySQL. Para utilizarlo, es necersario que se encuentre en ejecución el servidor Apache y el servidor MySql.Al ejecutar SQLyog se observa la primer ventana de configuración:

Page 114: Tutorial de PHP

               En el campo MySQL Host Address, colocar localhost,               En UserName, colocar root.               El Password dejarlo en blanco y el Port dejar el valor por defecto.

Al presionar el boton Connect, mostrará la pantalla principal del Administrador SQLyog.

Page 115: Tutorial de PHP

               Como ejemplo de uso, crearemos una Base de Datos llamada “Comercio” y dentro de ella una tabla llamada “Personas”.

               Para ello, se debe acceder al Menú en la opción: DB y luego seleccionar:[Create DataBase], con lo cual, mostrará una ventana pidiendo el nombre a dar a la base de datos. Colocar: "comercio" y presionar el botón: [Create]. Si se creó correctamente, el nombre comercio debe aparecer en el panel de la izquierda.                Ahora se procederá a crear una tabla en la base de datos comercio. Se debe posicionar en la base de datos comercio y presionar el botón derecho del Mouse, con lo cual aparecerá un menú en donde se debe seleccionar: [Create Table]. A continuación, colocar los campos necesarios, como por ejemplo:

                Tener en cuenta que no se deben colocar acentos en los nombres de los campos. Las demás columnas pueden quedar en blanco.Una vez colocados todos los campos, presionar el botón [Create Table], se mostrará un mensaje pidiendo especificar el nombre de la tabla. Colocamos “personas” y presionamos el botón OK. Luego preguntará si se necesita crear mas tablas, presionar el botón [No] y saldrá del editor de campos. Ya está la base de datos “comercio” creada con la tabla “personas”.

Acceso a MySql desde Php

Una de las aplicaciones mas importante de PHP es que posibilita el acceso a Base de Datos MySQL. Generalmente las instrucciones en PHP para trabajar con MySQL comienzan con el prefijo :  mysql_Para conectarse a la base de datos MySQL se utiliza la función :  mysql_connect(), que contiene el siguiente formato:

int mysql_connect (string servidor, string usuario, string contraseña);   

               Todos los parámetros son opcionales, y si no hay, se asumen los valores por defecto, que son:  Localhost, usuario propietario del proceso del servidor  y contraseña

Page 116: Tutorial de PHP

vacía.Esta  función devuelve un identificador de conexión que es positivo si tiene éxito o falso si detecta un error, además tiene gran importancia  en caso de trabajar con varias conexiones a la vez.

Un ejemplo de uso sería el siguiente:

if(!($idCone =mysql_connect(“localhost”,“Eduardo”,”ISSD”)))  {    echo “Error conectando el servidor”;    exit();  }  echo “Conexión realizada con éxito”;

               Con el if se controla si no se realizó la conexión,  se ser así, se envía una leyenda y luego termina la ejecución con exit (), de lo contrario continúa con el programa.

Selección de una Base de Datos

               Para seleccionar una Base de Dato luego de haber realizado la conexión con el servidor MySQL, se utiliza la función mysql_select_db, cuyo formato es el siguiente:

mysql_select_db (string Nombre, int Identificador)

Donde : 

Nombre: es el nombre de la Base de Dato a usar.Identificador: es el número o identificador de conexión.

Ejemplo de uso:

$BaseDeDato = "comercio";if (! mysql_select_db ($BaseDeDato, $idCone))   {     echo "Error seleccionando la base de datos";     exit();   }

               Generalmente se reúnen todas las funciones de conexión y selección en un solo fichero y se lo adiciona o incluye en las aplicaciones que se necesite, es decir, se lo incluye en las Altas, Bajas, etc..

Ejemplo:

               Con cualquier editor, como por ejemplo: Notepad, bloc de Notas, etc, realizar un

Page 117: Tutorial de PHP

fichero llamado Conexión.php cuya finalidad sea realizar la conexión con el servidor MySqL y la selección de la Base de Dato Comercio.

<?php

//  Fichero: Conexion.php

function conexion() {  $host = "Localhost";  $usuario = "root";  $clave = "";  $BaseDeDato = "comercio";

  $idCone = mysql_connect ($host, $usuario, $clave) or           die ("Error conectando al servidor $host con el                 nombre de usuario $usuario");

  mysql_select_db ($BaseDeDato, $idCone) or           die ("Error seleccionando la base de datos");  return $idCone; } ?>

               Este fichero debe ser grabado en la carpeta destinada para las páginas de php, por ejemplo, en la carpeta C:\wamp\www\Base de Datos.

Instrucciones   requiere()   e include()

               Estas instrucciones permiten incluir el contenido de un archivo dentro de otro. Es muy utilizado cuando se realizan programas largos, en los cuales se puede guardar, en un archivo independiente algunas funciones de interés. Por ejemplo se pueden incluir todas las funciones de una determinada aplicación en un fichero externo, y llamarlas en el momento que sea necesario, sin tener que involucrarlas en dicha aplicación.

Altas de Personas (1-2)

Las altas de personas significa agregar nuevos registros a la tabla llamada Personas. Para ello se debe contar con un formulario encargado de requerir los datos necesarios y luego grabarlos en la tabla.Tener presente que para que funcione el programa siguiente debe estar activado el servidor Apache y el servidor de Base de Datos  MySql.

Ejemplo:                Realizar un programa que presente un formulario de Carga de datos de personas (ALTA) y luego los almacene en la tabla Persona incluida en la "Base de Datos" Comercio.

Page 118: Tutorial de PHP

 Se realizarán dos ficheros, uno para la introducción de los datos y el otro para la grabación en la base de datos.

El primero, llamado "AltasDePersonas.htm" es el siguiente:

<html><Title> Altas de Personas </Title><Body><H2> Agregar Datos Personales </H2><Hr> <Br><Form name="Alta" action="AltasDePersonas.php" method="post"><Table Border="3" align="Center"><TR><TD Align="Center" width="20%">Nombre:<TD><Input Type="Text" name="Nombre" size=60></TR><TR><TD Align="Center">Direccion:<TD><Input Type="Text" name="Direccion" size=60></TR><TR><TD Align="Center">Mail:<TD><Input Type="Text" name="Mail" size=60></TR><TR><TD Align="Center">Telefono:<TD><Input Type="Text" name="Telefono" size=60></TR></Table><BR><p Align="Center"><Input Type="Submit" name="BotonEnviar" value="Enviar"></Form></Body></Html>

               Este fichero solamente consta de editores de textos para el ingreso de los datos y un botón [Enviar] para enviar los datos al otro fichero para su posterior grabación.

Page 119: Tutorial de PHP

Altas de Personas (2-2)

El fichero llamado AltasDePersonas.php encargado de grabar los datos es el siguiente:

<html><Title> Altas de Personas </Title><Body><?phprequire ("Conexion.php");$idCone = conexion();$Nombre = $_REQUEST[Nombre];$Direccion = $_REQUEST[Direccion];$Mail = $_REQUEST[Mail];$Telefono = $_REQUEST[Telefono];$SQL = "INSERT INTO Personas (Nombre, Direccion, Mail, Telefono)VALUES ('$Nombre', '$Direccion', '$Mail', '$Telefono')";if (mysql_query ($SQL)){echo "<P><H1> La Alta se ha realizado con exito para:$Nombre</P>";}else

Page 120: Tutorial de PHP

{echo "<P>Se ha producido un error para $Nombre</P>";}mysql_close($idCone);?></Body></Html>

Explicación:

               Una vez llenado el formulario, al presionar el botón enviar se se llama al fichero AltasDePersonas.php, que está descripto en la propiedad "Action" del "Formulario".

Al ingresar al fichero AltasDePersonas.php, nos encontramos con las instrucciones:

require ("conexion.php");$idCone = conexion();

               las cuales abren la conexión con el servidor MySQL. La primera línea especifica que se utilizará el archivo "conexión.php" (que fue realizado anteriormente), el cual tiene realizada la función de conexión(). La segunda linea llama a dicha función conexión(), y esta devuelve un número identificador de conexión, que es almacenado en la variable $idCone.

Con las líneas:

  $Nombre = $_REQUEST[Nombre];  $Direccion = $_REQUEST[Direccion];  $Mail = $_REQUEST[Mail];  $Telefono = $_REQUEST[Telefono];

se almacenan en las variables respectivas los valores rescatados del formulario, para ello se utiliza la función $_REQUEST.

Se continúa con la generación de la sentencia SQL para grabar los contenidos de las variables del formulario en la base de datos, esto se logra con las palabras INSERT INTO.

  $SQL = "INSERT INTO Personas (Nombre, Direccion, Mail, Telefono)               VALUES ('$Nombre', '$Direccion', '$Mail', '$Telefono')";

Esta línea significa lo siguiente:

               Inserte dentro de la tabla Personas, en los campos Nombre, Direccion, Mail y Teléfono, los valores contenidos en las variables $Nombre, $Direccion, $Mail y $Telefono.

Page 121: Tutorial de PHP

               Toda esta instrucción está conformada como una cadena de caracteres (observar las comillas dobles al principio y al final), la cual es almacenada en la variable $SQL.

La instrucción:                                mysql_query (Sentencia)

envía una Sentencia a la base activa del servidor del último enlace abierto. En este caso la sentencia ha sido generada en la variable $SQL.                Esta instrucción devuelve True o False, para indicar si la sentencia se ejecutó correctamente o no. Un valor True, indica que la sentencia era correcta y pudo ser ejecutada por el servidor, de lo contrario se ha producido un error en ella.

La forma de uso de la instrucción mysql_query es la indicada:

                               if (mysql_query ($SQL))

Que significa: Si el valor devuelto por mysql_query ($SQL) es verdadero (True) se envía una leyenda de éxito, de lo contrario una leyenda de error.

Una vez realizada la inserción de los datos, se cierra el enlace con la base MySQL asociada al identificador de conexión utilizando la instrucción:

                               mysql_close($idCone);

Aquí finaliza la ejecución de esta  página.

Listado General de Personas (1-2)

Un listado general es una visualización de todos los registros contenidos en una determinada Tabla. Corrientemente en el listado, los registros se muestran uno a continuación de otros, formando filas y columnas. Las filas representan a los registros y las columnas, a los campos que integran cada registro. Si la cantidad de campos es grande, se seleccionan los que tengan un cierto grado de interés en mostrar en el listado, dejando los demás para consultas particulares.

Ejemplo:

               Realizar un Listado completo de la Tabla Personas incluida en la Base de Datos Comercio.

               En este programa también se utilizará la función conexión(), realizada anteriormente, por este motivo se realiza nuevamente la instrucción :                               require ("conexion.php");

Page 122: Tutorial de PHP

<?php// " LISTADO GENERAL"

require ("conexion.php");$idCone = conexion();

echo "<H2>". "Listado Completo";echo "<HR>";

echo "<Table border=1 Align=Center width=90%>";

echo "<TR>";echo "<TH>" . "Nro";echo "<TH>" . "Nombre";echo "<TH>" . "Dirección";echo "<TH>" . "Mail";echo "<TH>" . "Teléfono";echo "</TR>";

$contador = 0;$SQL = "SELECT Nombre, Direccion, Mail, Telefono FROM personas";

$Registro = mysql_query($SQL,$idCone);while($Fila = mysql_fetch_array($Registro)){$contador++;echo "<Tr>";echo "<Td align=Center>" . $contador;echo "<Td>" . $Fila[Nombre];echo "<Td>" . $Fila[Direccion];echo "<Td align=Center>" . $Fila[Mail];echo "<Td align=Center>" . $Fila[Telefono];echo "<Tr>";}

echo "</Table>";

mysql_free_result ($Registro);mysql_close($idCone);?>

La ejecución de este programa dará como resultado la siguiente pantalla:

Page 123: Tutorial de PHP

Listado General de Personas (2-2)

Explicación del programa:

Al igual que el programa anterior, la instrucción :

               $idCone = conexion();

llama a la función conexión(), la cual realiza la conexión con MySQL y devuelve el identificador de conexión. Las tres líneas siguientes corresponden al lenguaje html, con ellas se logra colocar el título modificando el tamaño de la letra a H2, luego se traza una línea con HR.

Se crea una Tabla para que los registros queden formalmente alineados y las líneas siguientes corresponden a los títulos, que como ya se sabe, <TR> genera una línea de la tabla html y  <TH> se utiliza para crear cabeceras de columnas, de esta manera, el texto aparecerá centrado y en negritas en cada columna. 

Luego se genera la sentencia "SQL" con la línea:

               $SQL = "SELECT Nombre, Direccion, Mail, Telefono FROM personas";

Page 124: Tutorial de PHP

en ella se seleccionan los campos que se desean visualizar en el listado, en este caso se han seleccionado todos los campos de la tabla personas.Luego se la ejecuta con la instrucción mysql_query, y se almacenan los registros en la variable $Registro.

               $Registro = mysql_query ($SQL, $idCone);

Posteriormente, se entra en un ciclo while, estableciendo que mientras la variable $Fila tenga algun registro, imprima sus campos.

Por ultimo con la instrucción:

               mysql_free_result ($Registro);

se liberan de memoria los recursos asociados. Es decir que toda la memoria del resultado especificado en el parámetro se libera automáticamente. Luego se procede a cerrar la conexión con:

mysql_close($idCone);

Consultas de Personas (1-2)

Las consultas, son búsqueda de Registros por algún campo clave. En este caso, el campo clave puede ser el Nombre de la persona. La búsqueda consiste en encontrar una cadena de caracteres ingresada por teclado en la tabla de la base de dato. Lo mas general es encontrar el dato buscado de acuerdo a la cantidad de caracteres ingresados. De esta manera se puede localizar una serie de registros que cumplan con la condición requerida.

Ejemplo Realizar una Consulta por Nombre, mostrando todos los registros que coincidan con el nombre ingresado. Como se muestra a continuación:

Page 125: Tutorial de PHP

Los programas necesarios son:

ConsultasDePersonas.htm

Page 126: Tutorial de PHP

<html><Title> Consultas de Personas </Title><Body><H2> Consulta por Nombre </H2><Hr><Br><Table Border="3" align="Center" width=65%"><Form name="Consultas" action="ConsultasDePersonas.php" method="post"><TR><TH>Ingrese Nombre a Buscar :<TD><Input Type="Text" name="NomX" size=45 ></TR></Table><BR><table border="3" Align="Center"><TR><TD><Input Type="Submit" name="BotonEnviar"value="Buscar"></TD></TR></Table></Form></Body></Html>

Consultas de Personas (2-2)

ConsultasDePersonas.php

<html><Title> Consultas de Personas </Title><Body><?phprequire ("conexion.php");$idCone = conexion();$NomX = $_REQUEST[NomX];$SQL = "SELECT Nombre, Direccion, Mail, Telefono FROM personasWhere (Nombre LIKE '$NomX%' )";

echo "<H2>". "Consultas";echo "<HR>";

echo "<Table border=1 Align=Center width=90%>";

echo "<TR>";echo "<TH>" . "Nro";

Page 127: Tutorial de PHP

echo "<TH>" . "Nombre";echo "<TH>" . "Dirección";echo "<TH>" . "Mail";echo "<TH>" . "Teléfono";echo "</TR>";

$contador = 0;

$Registro = mysql_query($SQL,$idCone);while($Fila = mysql_fetch_array($Registro)){$contador++;echo "<Tr>";echo "<Td align=Center>" . $contador;echo "<Td>" . $Fila[Nombre];echo "<Td>" . $Fila[Direccion];echo "<Td align=Center>" . $Fila[Mail];echo "<Td align=Center>" . $Fila[Telefono];echo "<Tr>";}

echo "</Table>";

mysql_free_result ($Registro);mysql_close($idCone);?></Body></Html>

Las instrucciones son similares a los programas anteriores, por este motivo se comentarán las sentencias no vistas hasta el momento.

$SQL = "SELECT Nombre, Direccion, Mail, Telefono FROM personas           Where (Nombre LIKE '$NomX%' )";

Esta sentencia establece la selección de los datos a mostrar cuando se localice a la persona buscada. La línea se lee de la siguiente manera:

Asignar a la variable $SQL la selección de los campos:  Nombre, Dirección, Mail y Teléfono de la tabla Personas, donde el campo Nombre comience con los caracteres contenidos en la variable $NomX.

La utilización del carácter % al lado de la variable $NomX, indica que se deberá tener en cuenta únicamente los primeros caracteres del campo Nombre que coincidan con los de la variable $NomX. En caso de no figurar el símbolo %, se tendrá en cuenta la totalidad de los caracteres del campo Nombre para la coincidencia.

Page 128: Tutorial de PHP

Bajas de Personas (1-2)

Las Bajas consisten en eliminar uno o varios registros. También se pueden eliminar una serie de registros que cumplan una cierta condición. El proceso es similar al de las consultas, con la diferencia de que en este caso se elimina a la persona buscada.

Ejemplo: Realizar un programa que permita dar de "Baja" a una persona ingresada por teclado. El nombre ingresado por teclado debe estar completo para ser encontrado.

El formulario para solicitar el nombre de la persona a dar de baja, es similar al de Consultas de Personas. El programa llamado "BajaDePersonas.htm"; es el siguiente:

<html><Title> Bajas de Personas </Title><Body><H2> Bajas por Nombre </H2><Hr><Br><Table Border="3" align="Center" width=65%"><Form name="Bajas" action="BajasDePersonas.php" method="post"><TR><TH>Ingrese Nombre a dar de Baja :<TD><Input Type="Text" name="NomX" size=45 ></TR></Table><BR><table border="3" Align="Center"><TR><TD><Input Type="Submit" name="BotonEnviar"value="Buscar"></TD></TR></Table></Form></Body></Html>

Bajas de Personas (2-2)

Desarrollo del Programa BajasDePersonas.php

<html><Title> Bajas de Personas </Title><Body>

Page 129: Tutorial de PHP

<?phprequire ("conexion.php");$idCone = conexion();$NomX = $_REQUEST[NomX];$SQL = "SELECT Nombre, Direccion, Mail,Telefono FROM PersonasWhere (Nombre LIKE '$NomX' )";

echo "<H2>". "Bajas por Nombre";echo "<HR>";

echo "<Table border=1 Align=Center width=90%>";

echo "<TR>";echo "<TH>" . "Nro";echo "<TH>" . "Nombre";echo "<TH>" . "Dirección";echo "<TH>" . "Mail";echo "<TH>" . "Teléfono";echo "</TR>";

$contador = 0;

$Registro = mysql_query($SQL,$idCone);if($Fila = mysql_fetch_array($Registro)){$contador++;echo "<Tr>";echo "<Td align=Center>" . $contador;echo "<Td>" . $Fila[Nombre];echo "<Td>" . $Fila[Direccion];echo "<Td align=Center>" . $Fila[Mail];echo "<Td align=Center>" . $Fila[Telefono];echo "<Tr>";

echo "</Table>";

mysql_free_result ($Registro);$SQL = "DELETE FROM Personas Where (Nombre LIKE '$NomX' )";$Registro = mysql_query ($SQL, $idCone);echo "<BR>";echo "<H3>";echo "<p Align=Center>";echo "La persona: " . $NomX . " ha sidoeliminada de la Base de Datos";}else{

Page 130: Tutorial de PHP

echo "</Table>";echo "<h2>";echo "<p Align=Center>";echo "No existe ".$NomX." en la Base de Datos";}

mysql_close($idCone);?></Body></Html>

               Tener en cuenta que, a diferencia con la página de Consultas, en este programa se debe ingresar el nombre completo de la persona a buscar para poder ser localizada, esto es así debido a que no se encuentra el signo “%” luego del nombre de la variable $NomX. Si se quisiera que buscara por los caracteres ingresados se debería colocar $NomX%.

En este programa, la única linea desconocida es la instrucción encargada de eliminar un registro :

$SQL = "DELETE FROM Personas Where (Nombre LIKE '$NomX' )";

Esta linea se lee de la siguiente manera:  Borrar de la tabla Personas donde el contenido del campo Nombre coincida con el contenido de la variable $NomX.Se debe tener cuidado con la sentencia DELETE, ya que esta orden no pregunta la confirmación de la baja, sino que elimina el registro directamente.

Modificacion de Personas (1-3)

Esta aplicación debe tener una serie de presentaciones para su uso. En primer lugar debería permitir el ingreso del nombre de la persona a modificar, luego, en caso de encontrarlo, mostrar todos sus datos en campos editores para poder realizar cualquier modificación en ellos. Una vez actualizados los datos, el programa debería permitir la grabación de ellos, o bien, la cancelación de la actualización. Si se opta por la grabación, se procede a ejecutar la sentencia: UPDATE, la cual tiene por finalidad la actualización de la tabla con los nuevos valores. Si se opta por la cancelación, se ignoran los cambios y se envía la leyenda Modificación Cancelada.

  El programa para el ingreso de la persona a modificar los datos (ModificacionDePersonas.htm), es similar al de Consultas y al de Bajas:

Page 131: Tutorial de PHP

____________________________________________________________________<html><Title> Modificacion de datos Personales </Title><Body><H2> Modificacion por Nombre </H2><Hr><Br><Table Border="3" align="Center" width="65%"><Form name="Modificacion" action="ModificacionDePersonas.php" method="post"><TR><TH width="40%">Ingrese el Nombre de la persona a Modificar los datos :<TD><Input Type="Text" name="NomX" size=55 ></TR></Table><BR><table border="3" Align="Center"><TR><TD><Input Type="Submit" name="BotonEnviar"value="Buscar"></TD></TR></Table><Br><Br><P Align="Center"><a Href="ListadoDePersonas.php"> Ver Listado </a></Form></Body></Html>

Page 132: Tutorial de PHP

Modificacion de Personas (2-3)

Pantalla de Actualización

Una vez ingresado el nombre a buscar, en caso de existir en la base de datos, se deberán mostrar todos lo datos personales para su actualización, quedando la siguiente pantalla.

El programa para llevar a cabo esta acción se llama ModificacionDePersonas.php y su código es el siguiente:

____________________________________________________________________<Htm><Title> Modificaciones de Personas </Title><Body>

<?Phprequire ("conexion.php");$idCone = conexion();$NomX = $_REQUEST[NomX];$SQL = "SELECT Nombre, Direccion, Mail, Telefono FROM PersonasWhere (Nombre LIKE '$NomX' )";

$Registro = mysql_query ($SQL, $idCone);

Page 133: Tutorial de PHP

if($Fila = mysql_fetch_array($Registro)){// Asignar Datos a las variables$Nombre= $Fila[Nombre];$Direccion = $Fila[Direccion];$Mail = $Fila[Mail];$Telefono = $Fila[Telefono];

// Imprimir Formulario y Modificar los datos?><H2> Actualización de Datos Personales </H2><Hr><Br><Table Border="3" align="Center" width="40%"><Form name="Modi" action="Actualizar.php" method="Post">

<Input Type="hidden" name="NombreAnterior" size=50 value="<?Php echo $Nombre?>"><TR><TD>Nombre: <TD><Input Type="Text" name="Nombre" size=50 value="<?Php echo $Nombre?>"></TR><TR><TD>Direccion:<TD><Input Type="Text" name="Direccion" size=50 value="<?Php echo $Direccion?>"></TR><TR><TD>Mail: <TD><Input Type=Text" name="Mail" size=50 value="<?Php echo $Mail?>"></TR><TR><TD>Telefono: <TD><Input Type="Text" name="Telefono" size=50 value="<?Php echo $Telefono?>"></TR></Table><BR>

<table border="3" Align="Center"><TR><TD><Input Type="Submit" name="BotonGrabar" value="Actualizar"><TD><Input Type="Submit" name="BotonCancelar" value="Cancelar"></TR></Table></Form><?Php}else

Page 134: Tutorial de PHP

{echo "<h2>";echo "No existe " . $NomX;echo " en la Base de Datos";?><Form name="Volver" action="ModificacionDePersonas.htm" method="Post"><P Align = "Center"><Input Type="Submit" name="Volver" value="Otra Busqueda"></Form><?Php}mysql_free_result ($Registro);mysql_close($idCone);?></Body></Htm>____________________________________________________________________

En este proceso, se comienza por rescatar el nombre proveniente del formulario anterior en la variable $Nomx y acontinuación, se procede a la búsqueda de dicho nombre creando la consulta:

$SQL = "SELECT Nombre, Direccion, Mail, Telefono FROM PersonasWhere (Nombre LIKE '$NomX' )";

conjuntamente con la línea: $Registro = mysql_query ($SQL, $idCone);

Tener en cuenta que el nombre a buscar debe estar completo para poder localizarlo. En caso de encontrarlo la variable $Registro almacenará los registros que cumplan con la condición y en $Fila queda el primer registro de los almacenados, de esta manera se estará en condiciones de mostrar todos los datos para su modificación..En primer medida, se deben asignar los valores a las variables de los campos, esto se logra con las líneas :

$Nombre= $Fila[Nombre];$Direccion = $Fila[Direccion];$Mail = $Fila[Mail];$Telefono = $Fila[Telefono];

Una vez asignadas las variables, se muestra el formulario con los datos incluidos para su modificación.

 La línea:

<Input Type="hidden" name="NombreAnterior" size=50 value="<?Php echo $Nombre?>">

Page 135: Tutorial de PHP

es para guardar el nombre de búsqueda y no perderlo en caso de modificar el nombre en este formulario. De esta manera, al campo NombreAnterior se le asigna el valor que contiene la variable $Nombre.Con las líneas siguientes, se asignan a cada uno de los campos el contenido de las variables que le corresponden, luego se colocan dos botones en las líneas:

<TD><Input Type="Submit" name="BotonGrabar"  value="Actualizar"><TD><Input Type="Submit" name="BotonCancelar"   value="Cancelar">

las cuales se utilizan para grabar los cambios realizados o para ignorar los mismos. Cuando se pulsa el botón grabar, se llama a la página Actualizar.php descripta en la propiedad "action" del formulario.

Modificacion de Personas (3-3)

Grabación de los datos actualizados

El código de la página "Actualizar.php" puede verse a continuación:

____________________________________________________________________<?Phpif (isset($_REQUEST[BotonGrabar])){require ("conexion.php");$idCone = conexion();

$NombreAnterior = $_REQUEST[NombreAnterior];$Nombre = $_REQUEST[Nombre];$Direccion = $_REQUEST[Direccion];$Mail = $_REQUEST[Mail];$Telefono = $_REQUEST[Telefono];

$SQL = "UPDATE Personas SETNombre ='$Nombre',Direccion='$Direccion',Mail ='$Mail',Telefono ='$Telefono'Where (Nombre LIKE '$NombreAnterior' )" ;

mysql_query ($SQL, $idCone);mysql_close($idCone);

echo "<H2>";echo "<p Align=Center>";echo "Datos Actualizados correctamente para: ";

Page 136: Tutorial de PHP

echo $NombreAnterior;echo "<Br><Br>";}else{echo "<H2>"; echo "<p Align=Center>";echo "Actualización Cancelada";echo "<Br><Br>";}?><Form name="Volver" action = "ModificacionDePersonas.htm" method="Post"><p Align="Center"><Input Type="Submit" name="Volver" value="Otra Busqueda"></Form>____________________________________________________________________

Se comienza por preguntar si se presionó el "BotonGrabar", en caso de ser verdadero, se abre la conexión y se rescatan los datos actualizados. Una vez rescatados los datos, se regraban los cambios con las líneas:

$SQL = "UPDATE Personas SETNombre ='$Nombre',Direccion='$Direccion',Mail ='$Mail',Telefono ='$Telefono'Where (Nombre LIKE '$NombreAnterior' )" ;mysql_query ($SQL, $idCone);

Esto significa:

Adapte en la tabla personas, al conjunto de campos: Nombre con el contenido de la variable $Nombre, Direccion con el contenido de la variable $Direccion, Mail con el contenido de la variable $Mail y Telefono con el contenido de la variable $Telefono, donde el dato del campo Nombre sea igual que el valor almacenado en la variable $NombreAnterior.

Si en lugar de haber pulsado el botón grabar, se hubiera pulsado el botón cancelar, se procede a colocar la leyenda "Actualización Cancelada".