Вы находитесь на странице: 1из 55

PHP

Analista Programador
Universitario
APU 2008
San Pedro
Ciclo 2015

Ramiro Estigarribia Canese

Qu es PHP?
PHP es un lenguaje de programacin
diseado para el desarrollo web de contenido
dinmico.

Cmo funciona?
Cuando el cliente hace una peticin, el servidor ejecuta
el intrprete PHP.
Este compila el cdigo fuente, que genera el sitio web.
El resultado es enviado al navegador del cliente.
Caractersticas.
1. Es un multiplataforma y gratis. (Windows, Linux, Mac.)
2. El cdigo PHP es invisible al navegador.
3. Capacidad de conexin con bases de datos.
4. Capacidad de expandir su potencial con plugins.
5. Posee una amplia penetracin en internet.

Market Share:
Sitios en Internet

http://w3techs.com/technologies/overview/programming_language/all

Market Share en Internet


Lenguajes para cliente

http://w3techs.com/technologies/overview/client_side_language/all

Evolucin
La ltima versin 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 implementacin con Oracle.

Instalacin en Windows
La forma ms comn 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/

Instalacin en Linux
En Centos/RedHat/Fedora :
yum install httpd mysql-server php-mysql phpcommon
En Ubuntu/Debian/Mint :
sudo apt-get install tasksel
(el combo completo)
apt-get install phpmyadmin
sudo apt-get install php
(solo el compilador)

Cmo se prueba la
instalacin?
Despus 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 travs del servidor web.

Activar modo debug


display_errors = on
1. Ingresar a la terminal: LXTerminal
2. Ejecutar: sudo subl /etc/php5/apache2/php.ini
3. Cambiar la opcin 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

Estructura Bsica
<!DOCTYPE html>
<head>
<meta charset="UTF-8" />
<title>Ejemplo PHP</title>
</head>
<body>
<?php
print 'Hola mundo';
?>
</body>
</html>

Todo cdigo va entre:


<?php y ?>
La lneas que
empiezan con // son
comentarios.
La funcin print
imprime texto en la
pantalla.
Al igual que Java, toda
instruccin debe
terminar con ;

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";
?>

Estructura condicional (if)


Cuando se pretende que el programa tome un camino
concreto, se utiliza: if y else.
La estructura es la siguiente:
if (Condicin)
{
Instruccin 1;
}
else
{
Instruccin 2;
}

Estructura condicional (if)


Ejemplo: Valor Aleatorio.
<?php
$valor=rand(1,10);
//rand permite sortear un nmero
print "El valor sorteado es $valor<br>";
if ($valor<5)
{
echo "Es menor o igual a 5";
}
else
{
echo "Es mayor a 5";
}
?>

Estructura while
Es similar a otros lenguajes (Java, C++, etc.)
Ejecuta un bloque de programa mientras se cumpla
una cierta condicin.
Cuando deja de cumplirse, sale del ciclo y contina
ejecutndose el resto del programa.
while(condicin)
{
instrucciones;
}

Mostrar Nmeros
<?php
$valor=rand(1,100);
//rand permite sortear un nmero
$inicio=1;
while($inicio<=$valor)
{
print $inicio;
print "<br>";
$inicio++;
}
?>

Titulos y tamaos
<?PHP
$numero=1;
while ($numero<=6)
{
print "<h$numero>
Titulo $numero
</h$numero>";
$numero++;
}
?>

Tabla: 6 filas y 2 columnas


<?PHP
$numero=1;
print "<table border=1>";
while ($numero<=6)
{
print "<tr><td>A</td><td>B</td></tr>";
$numero++;
}
print "</table>";
?>

Ciclo For (Desde)


Se diferencia de while, en que se debe incluir, una
variable, la cual se incrementa o decrementa en forma
automtica.
for ($variable=Inicio; Condicin; Incremento)
{
Intruccin_1;
:
Intruccin_N;
}

Mostrar nmeros del 1 al 12


<?php
for($numero=1;$numero<=12;$numero++)
{
print $numero;
print "<br>";
}
?>

Nmeros al cuadrado
<?PHP
print "<table Border=1><tr>
<th>Numero</th>
<th>Cuadrado</th></tr>";
for ($i=1; $i<=10; $i++)
{
$cuadrado= $i * $i;
print"<tr>";
print"<td>$i</td>";
print"<td>$cuadrado</td>";
print"</tr>";
}
print "</table>";
?>

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 pginas, 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.

Variable nombre
Archivo uno.html:
<form action=dos.php>
Ingrese su nombre:
<input type=text name=nombre><br>
<input type=submit value=confirmar>
</form>
Archivo dos.php:
<?php
print "El nombre ingresado es:";
print $_REQUEST['nombre'];
?>

Tabla de Multiplicar
<?php
<form action=result.php>
$num = $_REQUEST["num"];
<label>Inserte un numero</label>
$x = 1; //inicializador
<input type=number name=num>
do {
<input type=submit>
$resultado = $x * $num;
</form>
print "$resultado <br>";
$x++; //incrementacin
} while ($x <= 10);
?>

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"; }
?>

Control Radio (parte 1)


<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 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";
}
?>

<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>

<Select> (parte 2)
<?php
print $_REQUEST['nombre'];
if ($_REQUEST['salario']==3)
{
print " Debe pagar impuestos.";
}
else
{
print " No debe pagar impuestos.";
}
?>

Vectores
Se utilizan directamente, sin declarar:
$nombre[0]=Juan;
$nombre[1]=Pedro;
Si ahora hacemos: $nombre[2]=Luis;
El vector tendr 3 datos.
Tambin podemos obviar el subndice:
$nombre[]=Juan;
$nombre[]=Pedro;
$nombre[]=Luis;
Automticamente se numera: 0,1,2....

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>";
}
?>

Arreglo Asociativo
Asigna nombres a cada posicin o dato del arreglo.
Es una manera ms humana de acceder a los elementos.
Esta vez los datos tendrn la forma de $llave => $valor.
<?php
$persona = array('nombre'=>'Juan', 'apellido'=>'valdez');
?>
Para acceder a un dato:
print $persona['apellido'];

Recorrer Arreglos
Existen varias maneras.
La mejor y ms sencilla es utilizar el bucle foreach().
<?php
$colores = array('rojo', 'verde', 'azul');
foreach( $colores as $color) {
print 'Color actual '. $color ;
}
?>

Funciones para Arreglos


sort(): Sirve para ordenar un arreglo
Recibe dos parmetros: 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 parmetro) en un arreglo
(segundo parmetro) y devuelve True si lo consigue o
False si no.
array_search(): Busca un valor (primer parmetro) en un
arreglo (segundo parmetro) y devuelve la posicin si lo
consigue.

Subir 1 Archivo.
<form enctype=multipart/formdata action=subir.php>
Archivo:
<input name=archivo type=file>
<input type=submit>
</form >

<?php
print "Nombre:";
print $_FILES['archivo']['name'];
print "<br>Tipo:";
print $_FILES['archivo']['type'];
print "<br>Tamano:";
print $_FILES['archivo']['size'];
print "<br>Ruta:";
print $_FILES['archivo']['tmp_name'];
?>

Sessions
Permiten que las pginas sean tratadas como un grupo,
ya que podemos compartir variables en diferentes pginas.
Para crear una Session se utiliza la funcin 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';
}
?>

Cookies
Permiten guardar configuracin del usuario.
Se almacenan en el disco duro del usuario.
Pueden permanecer un gran tiempo almacenadas,
incluso hasta despus que dejas el sitio.
Tienen un tamao limitado de espacio, por lo cual solo
sirven para datos especficos.
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';

Redireccionar a otra pgina


<?php
header("Location: http://[direccion]");
?>
Para probar implementaremos un formulario que
solicite el ingreso por teclado de una direccin de
internet.
La segunda pgina redireccionar al sitio
web cargado en el formulario.

Funciones de Fecha.
Las funciones de PHP en general estn pensadas
para ser usadas rpidamente, 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
Ms funciones: http://php.net/manual/es/ref.datetime.
php

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");
?>

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 segn
la base de datos a emplear.
Existen funciones para trabajar con:

MySQL
Microsoft SQL Server
Oracle
PostgreSQL
SYBASE, etc.

Qu es PhpMyAdmin?
Es una herramienta escrita en PHP con la intencin de
manejar la administracin de MySQL a travs de
pginas web, utilizando Internet.
Puede crear y eliminar Bases de Datos, crear, eliminar
y alterar tablas; borrar, editar y aadir campos,
ejecutar cualquier sentencia SQL, administrar claves
en campos, administrar privilegios, exportar datos en
varios formatos.
Se encuentra disponible bajo la licencia GPL.

Inicio de PhpMyAdmin

Creacin de Base de Datos


1. Ingresar en la opcin Bases de Datos.
2. Escribir el nombre, y presionar el botn Crear.

Creacin de Tablas
1. Ingresar en la Base de Datos creada. (Columbia)
2. Escribir el nombre, el nmero de columnas y
presionar el botn Continuar.

Insertar datos
Ingresar en la tabla Alumnos y presionar el botn Insertar.

Insertar los siguientes Alumnos:


5320290
Juan Lopez
1994-01-04

2333555
Ana Gaona
1994-01-06

2100555
Carol Perez
1992-01-06

Listado
(seleccin 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>";
}
?>

Insert
Alta de registros. (parte 1)
Es necesario un formulario para cargar datos, y otro para procesar.

<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>

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";
?>

Update
Modificar Registros.
En este ejemplo, vamos modificar los nombres,
sin usar un formulario.
<?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;
?>

Delete
Eliminar Registros.
En este ejemplo, vamos eliminar todos los datos.
<?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;
?>

Include y Require.
Cmo haramos para crear un sitio web que contenga
100 pginas con conexin a una base de datos?
Sera tedioso repetir un cdigo 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
ejecucin.
En cambio Require corta el programa y muestra el error.

Automatizar creacin de ABM


http://www.phpscaffold.com/
Permite crear los formularios y listados para trabajar
con bases de datos.
Evita el trabajo de escribir muchas lneas de cdigo.
Es necesario Exportar la tabla con PhpMyAdmin, y
copiar el resultado.
Finalmente se pueden personalizar los resultados.

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 comprensin
y el mantenimiento.

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 nmero de
puertas, y cargamos 10 litros.
Finalmente aceleramos.

Вам также может понравиться