2. ¿Qué es PHP?
PHP es un lenguaje de programación
diseñado para el desarrollo web de contenido
dinámico.
3. ¿Cómo funciona?
➔ Cuando el cliente hace una petición, el servidor ejecuta
el intérprete PHP.
➔ Este compila el código fuente, que genera el sitio web.
➔ El resultado es enviado al navegador del cliente.
Características.
1. Es un multiplataforma y gratis. (Windows, Linux, Mac.)
2. El código PHP es invisible al navegador.
3. Capacidad de conexión con bases de datos.
4. Capacidad de expandir su potencial con plugins.
5. Posee una amplia penetración en internet.
4. Market Share:
Sitios en Internet
http://w3techs.com/technologies/overview/programming_language/all
5. Market Share en Internet
Lenguajes para cliente
http://w3techs.com/technologies/overview/client_side_language/all
6. Evolución
La última versión es 5.7, que presenta
mejoras en el entorno orientado a objetos.
Compite en aplicaciones empresariales con las
plataformas J2EE y .NET.
➔ Mejor soporte para MySQL.
➔ Mejor soporte a XML.
➔ Soporte nativo para SQLite.
➔ Iteradores de datos.
➔ Manejo de excepciones.
➔ Mejoras con la implementación con Oracle.
7. Instalación en Windows
La forma más común es utilizar “combos”:
Apache (servidor web), MySQL (base de datos) y PHP.
Facilitan el trabajo para instalar un servidor de desarrollo.
http://www.wampserver.com
http://wtriple.com/wtnmp/
http://www.easyphp.org/
8. Instalación en Linux
En Centos/RedHat/Fedora :
● yum install httpd mysql-server php-mysql php-
common
En Ubuntu/Debian/Mint :
● sudo apt-get install tasksel
(el combo completo)
apt-get install phpmyadmin
● sudo apt-get install php
(solo el compilador)
9. ¿Cómo se prueba la
instalación?
➔ Después que tengamos instalado nuestro
servidor local tenemos que probarlo, para hacer
esto ingresamos http://localhost en nuestro
navegador.
➔ Si todo esta instalado debidamente entonces
debemos ver un mensaje diciendo que funciona.
➔ La carpeta /var/www/html, es por defecto la carpeta
principal.
Todo lo que esté en esta carpeta es accesible
desde el navegador web a través del servidor web.
10. Activar modo debug
display_errors = on
1. Ingresar a la terminal: LXTerminal
2. Ejecutar: sudo subl /etc/php5/apache2/php.ini
3. Cambiar la opción display_erros = off, y reemplazar
por display_errors=on.
(Control G, y escribir 469, para llegar al lugar exacto.)
3. Reiniciar el servicio: apachectl restart
11. Estructura Básica
<!DOCTYPE html>
<head>
<meta charset="UTF-8" />
<title>Ejemplo PHP</title>
</head>
<body>
<?php
print 'Hola mundo';
?>
</body>
</html>
➔ Todo código va entre:
<?php y ?>
➔ La líneas que
empiezan con // son
comentarios.
➔ La función print
imprime texto en la
pantalla.
➔ Al igual que Java, toda
instrucción debe
terminar con ;
12. Variables
➔ Comienzan con el signo $.
➔ No hace falta declarar, o especificar el tipo de dato.
<?php
$dia = 24; //variable de tipo integer.
$sueldo = 758.43; //variable de tipo double.
$nombre = ‘juan’; //variable de tipo string.
print "variable entera $dia";
print "<br>";
print "Variable double: $sueldo";
print "<br>";
print "Variable string: $nombre";
?>
13. Estructura condicional (if)
Cuando se pretende que el programa tome un camino
concreto, se utiliza: if y else.
La estructura es la siguiente:
if (Condición)
{
Instrucción 1;
}
else
{
Instrucción 2;
}
14. Estructura condicional (if)
Ejemplo: Valor Aleatorio.
<?php
$valor=rand(1,10);
//rand permite sortear un número
print "El valor sorteado es $valor<br>";
if ($valor<5)
{
echo "Es menor o igual a 5";
}
else
{
echo "Es mayor a 5";
}
?>
15. Estructura while
➔ Es similar a otros lenguajes (Java, C++, etc.)
➔ Ejecuta un bloque de programa mientras se cumpla
una cierta condición.
➔ Cuando deja de cumplirse, sale del ciclo y continúa
ejecutándose el resto del programa.
while(condición)
{
instrucciones;
}
19. Ciclo For (Desde)
Se diferencia de while, en que se debe incluir, una
variable, la cual se incrementa o decrementa en forma
automática.
for ($variable=Inicio; Condición; Incremento)
{
Intrucción_1;
:
Intrucción_N;
}
20. Mostrar números del 1 al 12
<?php
for($numero=1;$numero<=12;$numero++)
{
print $numero;
print "<br>";
}
?>
22. Formularios
➔ Permite cargar datos al servidor.
➔ Es el medio ideal para registrar datos, solicitar
productos, sacar turnos etc.
➔ HTML solo tiene el objetivo de crear el formulario.
Se requiere de dos páginas, una que implementa el
formulario HTML y otra que procesa los datos.
Para acceder al dato se cuenta con $_REQUEST,
indicando el nombre de la variable.
23. Variable nombre
Archivo uno.html:
Archivo dos.php:
<form action=dos.php>
Ingrese su nombre:
<input type=text name=nombre><br>
<input type=submit value=confirmar>
</form>
<?php
print "El nombre ingresado es:";
print $_REQUEST['nombre'];
?>
24. Tabla de Multiplicar
<form action=result.php>
<label>Inserte un numero</label>
<input type=number name=num>
<input type=submit>
</form>
<?php
$num = $_REQUEST["num"];
$x = 1; //inicializador
do {
$resultado = $x * $num;
print "$resultado <br>";
$x++; //incrementación
} while ($x <= 10);
?>
25. Mayor de edad
<form action=edad.php>
Ingrese el nombre:
<input type=text name=nombre><br>
Ingrese la edad:
<input type=number name=edad>
<br><input type=submit>
</form>
<?php
print $_REQUEST['nombre'];
if ($_REQUEST['edad']>=18)
{ print " Es mayor de edad"; }
else
{ print " No es mayor de edad"; }
?>
26. <form action=calcular.php>
Ingrese valor uno:
<input type=number name=valor1><br>
Ingrese valor dos:
<input type=number name=valor2><br>
<input type=radio name=operador
value=suma>sumar<br>
<input type=radio name=operador
value=resta>restar<br>
<input type=submit value=Calcular>
</form>
Control Radio (parte 1)
27. Control Radio (parte 2)
<?php
if ($_REQUEST['operador']=='suma')
{
$suma=$_REQUEST['valor1'] + $_REQUEST['valor2'];
print "La suma es: $suma";
}
if ($_REQUEST['operador']=='resta')
{
$resta=$_REQUEST['valor1'] - $_REQUEST['valor2'];
print "La resta es: $resta";
}
?>
28. <Select> (parte 1)
<form action=dos.php>
Ingrese su nombre:
<input type=text name=nombre><br>
Seleccione en que rango se ubica su salario:
<select name=salario>
<option value=1>1-1000</option>
<option value=2>1001-3000</option>
<option value=3>3000</option>
</select><br>
<input type=submit>
</form>
30. Vectores
Se utilizan directamente, sin declarar:
$nombre[0]=’Juan’;
$nombre[1]=’Pedro’;
Si ahora hacemos: $nombre[2]=Luis;
El vector tendrá 3 datos.
También podemos obviar el subíndice:
$nombre[]=’Juan’;
$nombre[]=’Pedro’;
$nombre[]=Luis;
Automáticamente se numera: 0,1,2....
31. Ejemplo con un Vector
<?php
$nombre[0]=’Juan’;
$nombre[1]=’Pedro’;
$nombre[2]=’Luis’;
for($i=0;$i<count($nombres);$i++)
{
print $nombres[$i];
print "<br>";
}
?>
32. Arreglo Asociativo
➔ Asigna nombres a cada posición o dato del arreglo.
➔ Es una manera más humana de acceder a los elementos.
➔ Esta vez los datos tendrán la forma de $llave => $valor.
<?php
$persona = array('nombre'=>'Juan', 'apellido'=>'valdez');
?>
Para acceder a un dato:
print $persona['apellido'];
33. Recorrer Arreglos
Existen varias maneras.
La mejor y más sencilla es utilizar el bucle foreach().
<?php
$colores = array('rojo', 'verde', 'azul');
foreach( $colores as $color) {
print 'Color actual '. $color ;
}
?>
34. Funciones para Arreglos
➔ sort(): Sirve para ordenar un arreglo
Recibe dos parámetros: el arreglo y el tipo de algoritmo.
(SORT_NUMERIC, SORT_STRING, SORT_REGULAR,
estos son los mas utilizados).
➔ print_r(): Imprime todos los elementos del arreglo.
➔ in_array(): Busca un valor(primer parámetro) en un arreglo
(segundo parámetro) y devuelve True si lo consigue o
False si no.
➔ array_search(): Busca un valor (primer parámetro) en un
arreglo (segundo parámetro) y devuelve la posición si lo
consigue.
36. Sessions
➔ Permiten que las páginas sean tratadas como un grupo,
ya que podemos compartir variables en diferentes páginas.
➔ Para crear una Session se utiliza la función session_start().
➔ Se almacenan en el disco duro del usuario.
<?php
session_start();
$_SESSION['nombre'] = 'Juan';
$_SESSION['apellido'] = 'Perez';
?>
<?php
session_start();
if (isset($_SESSION['nombre'])) {
print $_SESSION['nombre'];
} else {
print 'No existe la variable';
}
?>
37. Cookies
➔ Permiten guardar configuración del usuario.
➔ Se almacenan en el disco duro del usuario.
➔ Pueden permanecer un gran tiempo almacenadas,
incluso hasta después que dejas el sitio.
➔ Tienen un tamaño limitado de espacio, por lo cual solo
sirven para datos específicos.
Crear una cookie:
setcookie('nombreUsuario', 'Pedro', time() + 4800);
Leer una cookie:
if (isset($_COOKIE['nombreUsuario']))
print 'Valor de la Cookie '. $_COOKIE
['nombreUsuario'];
else
print 'No hay Cookies';
38. Redireccionar a otra página
<?php
header("Location: http://[direccion]");
?>
Para probar implementaremos un formulario que
solicite el ingreso por teclado de una dirección de
internet.
La segunda página redireccionará al sitio
web cargado en el formulario.
39. Funciones de Fecha.
Las funciones de PHP en general están pensadas
para ser usadas rápidamente, sin muchas
complicaciones.
print date("d-m-Y H:i");
Resultado: 27-05-2014 19:30
print date("d-m-Y");
Resultado: 27-05-2014
print date("H:i:s");
Resultado: 19:30:15
Más funciones: http://php.net/manual/es/ref.datetime.
php
40. Funciones de Fecha.
<?php
$dias = array("domingo","lunes","martes","miercoles","jueves","
viernes",
"sabado");
print "Hoy es ".$dias[date("w")]."<br>";
print "Today is " . date("Y.m.d") . "<br>";
print "Today is " . date("Y-m-d") . "<br>";
print "Today is " . date("l");
?>
41. Base de datos
Uno de los empleos principales de PHP
es el acceso a una base de datos.
Las operaciones se hacen empleando el lenguaje SQL.
PHP implementa distintas funciones según
la base de datos a emplear.
Existen funciones para trabajar con:
➢ MySQL
➢ Microsoft SQL Server
➢ Oracle
➢ PostgreSQL
➢ SYBASE, etc.
42. ¿Qué es PhpMyAdmin?
Es una herramienta escrita en PHP con la intención de
manejar la administración de MySQL a través de
páginas web, utilizando Internet.
Puede crear y eliminar Bases de Datos, crear, eliminar
y alterar tablas; borrar, editar y añadir campos,
ejecutar cualquier sentencia SQL, administrar claves
en campos, administrar privilegios, exportar datos en
varios formatos.
Se encuentra disponible bajo la licencia GPL.
44. Creación de Base de Datos
1. Ingresar en la opción Bases de Datos.
2. Escribir el nombre, y presionar el botón Crear.
45. Creación de Tablas
1. Ingresar en la Base de Datos creada. (Columbia)
2. Escribir el nombre, el número de columnas y
presionar el botón Continuar.
46. Insertar datos
Ingresar en la tabla Alumnos y presionar el botón Insertar.
5320290
Juan Lopez
1994-01-04
2333555
Ana Gaona
1994-01-06
2100555
Carol Perez
1992-01-06
Insertar los siguientes Alumnos:
47. Listado
(selección de registros)
<?php
$db = new mysqli('localhost', 'root', '1', 'Columbia');
$sql = "select * from Alumnos";
$resultado = $db->query($sql);
while($fila = $resultado->fetch_assoc())
{
// $fila es un arreglo asociativo con los campos del select
print $fila['Documento'];
print "<hr>";
}
?>
48. Insert
Alta de registros. (parte 1)
<form action=insertar.php>
<label>Documento:</label>
<input type=number
name=Documento><br>
<label>Nombre:</label>
<input type=text name=Nombre><br>
<label>Nacimiento:</label>
<input type=date name=Nacimiento><br>
<input type=submit>
</form>
Es necesario un formulario para cargar datos, y otro para procesar.
49. Insert
Alta de registros. (parte 2)
<?php
$db = new mysqli('localhost', 'root', '1', 'Columbia');
$sql = "insert into Alumnos values('$_REQUEST
[Documento]','$_REQUEST[Nombre]', '$_REQUEST
[Nacimiento]')";
if(! $db->query($sql)){
die("Ocurrio un error ejecutando: $db->error");
}
print "Filas Insertadas: $db->affected_rows";
?>
50. Update
Modificar Registros.
<?php
$db = new mysqli('localhost', 'root', '1', 'Columbia');
$sql = "update Alumnos set Nombre = 'Pedro'";
if(! $db->query($sql) ){
die("Ocurrio un error ejecutando: $db->error");
}
print 'Filas Modificadas: '.$db->affected_rows;
?>
En este ejemplo, vamos modificar los nombres,
sin usar un formulario.
51. Delete
Eliminar Registros.
<?php
$db = new mysqli('localhost', 'root', '1', 'Columbia');
$sql = "delete from Alumnos";
if(! $db->query($sql) ){
die("Ocurrio un error ejecutando: $db->error");
}
print 'Filas Eliminadas: '.$db->affected_rows;
?>
En este ejemplo, vamos eliminar todos los datos.
52. Include y Require.
➔ ¿Cómo haríamos para crear un sitio web que contenga
100 páginas con conexión a una base de datos?
➔ Sería tedioso repetir un código 100 veces.
➔ Para esto tenemos las funciones include y require.
require "conexion.php";
$sql = "UPDATE Alumnos SET Nombre = 'Pedro'";
if(! $db->query($sql) )
die("Ocurrio un error ejecutando: $db->error");
print 'Filas Modificadas: '.$db->affected_rows;
➔ Include intenta cargar el archivo pero si no logra, continua la
ejecución.
➔ En cambio Require corta el programa y muestra el error.
53. Automatizar creación de ABM
http://www.phpscaffold.com/
➔ Permite crear los formularios y listados para trabajar
con bases de datos.
➔ Evita el trabajo de escribir muchas líneas de código.
➔ Es necesario Exportar la tabla con PhpMyAdmin, y
copiar el resultado.
➔ Finalmente se pueden personalizar los resultados.
54. Clases y Objetos
<?php class Carro {
var $color;
var $numero_puertas;
var $marca;
var $gasolina = 0;
function llenarTanque($gasolina_nueva){
$this->gasolina = $this->gasolina +
$gasolina_nueva;
}
function acelerar(){
if ($this->gasolina > 0){
$this->gasolina = $this->gasolina - 1;
return 'Gasolina restante: '.$this->gasolina;
} } }
Se utilizan de manera
similar a otros lenguajes.
Facilitan la comprensión
y el mantenimiento.
55. Instanciar una clase.
$carro = new Carro();
// Instanciamos la clase Carro
$carro->color = 'Rojo';
// Llenamos las propiedades
$carro->marca = 'Honda';
$carro->numero_puertas = 4;
$carro->llenarTanque(10);
// utilizamos los metodos
$carro->acelerar();
$carro->acelerar();
$carro->acelerar();
?>
➔ Asignamos el color rojo y la
marca Honda.
➔ Definimos el número de
puertas, y cargamos 10 litros.
➔ Finalmente aceleramos.