Está en la página 1de 83

Universidad Pública del El Alto

Carrera de Ingenieria de Sistemas

PHP

mtorrezc@gmail.com
¿Que es PHP?
PHP (acrónimo recursivo de PHP: Hypertext
Preprocessor) es un lenguaje de código abierto muy
popular especialmente adecuado para el desarrollo
web y que puede ser incrustado en HTML. La mayor
parte de su sintaxis ha sido tomada de C, Java y Perl
con algunas características especí cas de si mismo.
La meta del lenguaje es permitir rápidamente a los
desarrolladores la generación dinámica de páginas
Web.
Estructura de un programa en PHP
Los programas PHP se guardan en archivos con
extensión .php

<?php
// Comentarios de linea
/*
Comentarios de bloque
*/
// Aqui va el codigo en lenguaje PHP
?>
Salida de datos
El comando echo es la instrucción que permite
imprimir textos en el navegador del usuario, además
este comando tiene la posibilidad de imprimir los
valores de cualquier variable o constante de nida
previamente.

<?php
echo “<html>\n”;
echo “<head><title>Pagina estatica</title></head>\n”;
echo “<body>Esta es una pagina generada con varios\n";
echo "</body>\n”;
echo “</html>\n”;
?>
También es posible incluir codigo PHP en archivos
HTML

<?php
$materia = "Emergentes";
?>
<html>
<head><title>Pagina dinamica</title></head>
<body>
<h1>Salida dinámica</h1>
<p>La siguiente linea se genera de forma dinamica</p>
<?php
echo "El valor de la materia es: ". $materia;
?>
Variables
En PHP las variables se inician con el símbolo $ y el
nombre debe comenzar con una letra o un guion bajo
y luego puede tener letras, guiones bajos o números.
La asignación del valor a la variable se la hace usando
el símbolo =

<?php
$nombre = “Juancito pinto”;
$edad = 14;
?>
Tipos de variables
Entero (integer)
Coma otante ( oat)
Carácter (string)
Boolean, almacenan los valores true o false
Arreglos (array)
Objectos (object)
Ejemplos

<?php
/**
* Declaración de variables
**/
// Enteros
$num_entero - 12345;
// Decimales
$num_fotante = 123.45;
// Cadenasa
$cadena = "Ësta es una cadena";
// Boolean
$bandera = true;
// Arreglo
$paises = array("Argentina","Bolivia","Chile");
?>
Declaración de cadenas

<?php
echo "Esta es una cadena";
echo "<br>";
echo 'Esta es otra cadena';
echo "<br>";
echo "Esta es una 'cadena'";
echo "<br>";
echo 'Esta es otra "cadena"';
echo "Soy una \"cadena\" entre comillas<br>";
?>
Otra forma de delimitar una cadena es mediante la
sintaxis heredoc.

<?php
$mensaje = <<<TEXTO
La Paz
es una de las maravillas
del mundo
TEXTO;
echo $mensaje;
?>
También al interior de los fragmentos se pueden
incluir variables, por ejemplo:

<?php
$fecha = “16 de julio”;
$mensaje = <<<TEXTO
La Paz es una de las ciudades mas
altas del mundo y su aniversario
es el $fecha
TEXTO;
echo $mensaje;
?>
Arreglos
Los arreglos son un tipo de variable que permite
agrupar varias variables usualmente del mismo tipo y
manejarlos como si fueran una sola variable. Se
accede a las variables de forma independiente a
través de un índice o llave.
Los índices pueden ser números o cadenas, si el
índice es numérico se trata de arrays numéricos y si
el índice es una cadena se trata de arrays
asociativos.
Creando un arreglo numerico

<?php
// Creación de un array con cuatro elementos
$arreglo = array('Uno', 'dos', 'tres','cuatro');
// Colocando un elemento en la quinta posición
$arreglo[4] ="Cinco";
// Agregando un elemento en la última posición
$arreglo[] = "Diez";
?>
En los arreglos asociativos el índice es una cadena y
se accede a cada elemento haciendo referencia a la
cadena.

<?php
$paises = array(
'bolivia' => 'Sucre',
'brasil' => 'Brasilia',
'paraguay' => 'Asunción');
// Tambien se pueden agregar nuevos elementos por separa
$paises['argentina'] = 'Buenos Aires';
$paises['uruguay'] = 'Montevideo';
?>
Constantes
<?php
define("EMPRESA","Signet S.R.L.") ;
define("GERENTE","Ricardo Gonzales");
define ("COLOR_ROJO", "#FF0000");
echo "Empresa: " . EMPRESA;
echo "<br>";
echo "Gerente: " . GERENTE;
echo "<br>";
echo COLOR_ROJO;
?>
Operadores
Los operadores son símbolos propios del lenguaje
que sirven para realizar acciones sobre variables, se
tienen operadores para asignar, comparar,
incrementar y decrementar variables.
Asignación
El operador para asignar un valor a una variable es =
(igual)

$variable1 = 123;
$variable2 = "Emergentes";
$total = 10 + 15;
$entero = 50;
$entero_negativo = -$entero;
Concatenación
Sirve para unir dos cadenas de texto en una sola y el
símbolo que se usa es . (punto)

// Contatenación
$saludo = "Hola";
$nombre = "Adriana";
$texto = $saludo." ".$nombre;
Aritméticos
$ope1 = 24;
$ope2 = 8;
$suma = $ope1 + $ope2; // Resultado 32
$resta = $ope1 - $ope2; // Resultado 16
$producto = $ope1 * $ope2; // Resultado 192
$division = $ope1 / $ope2; // Resultado 3
$residuo = $ope1 % $ope2; // Resultado 0
Incremento y decremento
// Operadores unarios
$a = 15;
$b = 5;
$total = $a++ + $b; // Resultado 20
$a = 15;
$b = 5;
$total = ++$a + $b; // Resultado 21
$a = 15;
$b = 5;
$total = $a-- + $b; // Resultado 10
$a = 15;
$b = 5;
$total = --$a + $b; // Resultado 9
Adicionalmente se cuenta con operadores como ser
+= (mas igual), -= (menos igual), *=(multiplica igual),
/= (divide igual) , = (punto igual) y %=(modulo igual)

$num = 10;
$num += 10; // Resultado 20
$num = 50;
$num -= 10; // Resultado 40
$num = 5;
$num *= 3; // Resultado 15
$num = 24;
$num /= 3; // Resultado 8
$num = 21;
$num %= 2; // Resultado 1
Lógicos
Estos operadores permiten efectuar operaciones
lógicas entre dos valores o expresiones lógicas, el
resultado de la operación es true (verdadero) o false
(falso)

// Negación
$nuevo = true;
$antinguo = !$nuevo // resultado false
// And
$p = true;
$q = false;
$res1 = $p && $q // Resultado false
// Or
$res2 = $p || $q // Resultado true
Funciones relacionadas con variables
Se tienen varias funciones que sirven para trabajar
con variables, entre otras citamos las siguientes:

is_string(parámetro), veri ca si es una cadena


is_int(parámetro), veri ca si parámetro es entero
is_ oat(parámetro), veri ca si parámetro es
numero decimal
is_boolean(parámetro), veri ca si parámetro es
boolean
is_array(parametro), veri ca si parámetro es
arreglo
is_object(parámetro), veri ca si parámetro es
objeto
isset(parámetro), veri ca si parámetro está
declarado
intval(cadena), convierte la cadena numérica en
un entero
de ned(constante), veri ca si la constante está
de nida
unset(parámetro), elimina una variable de la
memoria
Inclusión de archivos
Las funciones de inclusión de archivos son:

include: también incluye el archivo pasado como


argumento, pero, ante un error, produce solo una
advertencia.
require_once: es similar a require, pero incluye el
archivo solamente una vez, aunque se intente
hacerlo más de una.
include_once: es semejante a include, pero incluye
el archivo solamente una vez, aunque se intente
hacerlo más de una.
require_once

<?php require_once("header.php"); ?>


<h1>Hola mundo</h1>
<?php require_once("footer.php"); ?>

require

<?php require("header.php"); ?>


<h1>Hola mundo</h1>
<?php require("footer.php"); ?>

include

<?php include("header.php"); ?>


<h1>Hola mundo</h1>
<?php include("footer.php"); ?>
Estructuras de control
Todas las estructuras de control tienen un único
punto de entrada. Las estructuras de control se
pueden clasi car en: secuenciales, condicionales y
repetitivas.
Condicionales
// If
echo "<h3>If</h3>";
$variable = 10;
if ($variable > 5) {
// Ejecuta las sentencias
echo "La variable es mayor que 5";
}
echo "<p>Sintaxis alternativa</p>";
if ($variable > 5):
// Ejecuta las sentencias
echo "La variable es mayor que 5";
endif;
// If else
echo "<h3>If else</h3>";
$usuario = "pepe";
if ($usuario == "admin")
{
// Se ejecuta cuando la condicion es true
echo 'Hola Admin, tiene todos los permisos';
}
else
{
// Se ejecuta cuando la condición es false
echo 'Hola ' . $usuario ;
}
// If elseif
echo "<h3>If elseif</h3>";
$usuario = "operador";
if ($usuario == "admin")
{
echo 'Hola Admin, tiene todos los permisos';
}
elseif ($usuario == "operador")
{
echo 'Hola Operador';
}
else
{
echo 'Hola ' . $usuario ;
}
// Switch
echo "<h3>Switch</h3>";
$var = 3;
switch ($var)
{
case 1:
// Ejecuta las sentencias
echo "La variable tiene el valor 1";
break;
case 2:
// Ejecuta las sentencias
echo "La variable tiene el valor 2";
break;
case 3:
// Ejecuta las sentencias
echo "La variable tiene el valor 3";
break;
default :
// Ejecuta las sentencias
echo "Es otro valor";
Repetitivas
// While
echo "<h3>While</h3>";
$variable = 0;
$j = 10;
while ($variable < 100 )
{
$variable = $variable + $j;
echo "No. " . $variable . "<br>";
}
echo "<p>Sintaxis alternativa</p>";
$variable = 0;
while ($variable < 100):
$variable += $j;
echo "No. " . $variable . "<br>";
endwhile;
// Do while
echo "<h3>Do While</h3>";
$variable = 10;
do
{
$variable--;
echo "No. " . $variable . "<br>";
} while ($variable > 0);
// For
echo "<h3>For</h3>";
for ($i = 0; $i <10; $i++){
echo "No. " . $i . "<br>";
}
echo "<p>Sintaxis alternativa</p>";
for ($i = 0; $i <10; $i++) :
echo "No. " . $i . "<br>";
endfor;
Foreach

// For en arreglos
echo "<h3>For en arreglos</h3>";
$arreglo = array('Toyota', 'Suzuki', 'Mitshubishi');
foreach($arreglo as $item){
echo $item. "<br>";
}

echo "<p>Otro ejemplo</p>";


$capitales = array('Bolivia' => 'Sucre', 'Uruaguay'=>'Montevideo
foreach($capitales as $indice => $valor){
echo "El indice es: $indice y su valor es: $valor<br>";
}
Funciones
Las funciones permiten agrupar una tarea compleja y
referenciarlos a través de un nombre.
Declaración
La declaración de una función tiene la siguiente
sintaxis:

function nombre_funcion(parámetros){
// instrucciones
}
Para llamar a las funciones se hacer referencia a su
nombre.

<?php
function saludo()
{
echo "Hola Mundo";
}

function saludoNombre($nombre)
{
echo "Bienvenido ". $nombre;
}

//Llamada a las funciones


saludo(); // Imprime hola mundo
saludoNombre("Alvarito"); // Imprime Bienvenido Alvarito
?>
Alcance de las funciones
Cada función tienen su propio alcance, es decir las
variables que son declaradas dentro de una función
no existen en el programa.

<?php
function foo()
{
$valor = 0;
}
$valor = 5;
foo();
echo $valor; // Imprime 5
?>
Parámetros
Las funciones pueden recibir valores al ser
invocados, estos valores se reciben en variables que
se denominan parámetros o argumentos de una
función.

<?php
function suma($a,$b){
echo $a + $b;
}

suma(10,15);l // Imprime 25
?>
IMPORTANTE: los parámetros de una función
pueden tener valores por defecto, es decir si se hace
una llamada a la función sin especi car el valor del
parámetro, la función puede tomar un valor por
defecto

<?php
function nota($nombre, $titulo = "Ing.")
{
echo "Distinguido " . $titulo. " ". $nombre;
}

nota("Ruben Paredes"); // imprime Distiguido Ing.


nota("Estaban Cabezas","Dr."); // Imprimer Distinguido Dr.
?>
Devolución o retorno de valores
Revisamos el siguiente ejemplo

<?php

$subcadena = substr("ABCDEFG", 0, 3);


echo $subcadena; // Imprime ABC
?>
Un ejemplo con retorno de valores

<?php
function obtener_segundo($a, $b, $c)

{
return $b . " "; // add a space
}

echo obtener_segundo("Uno", "Dos","Tres"); // Imprime Dos


echo obtener_segundo("Rojo", "Amarillo","Verde"); // Imprime Ama
?>
Recursividad
La recursividad es una técnica de programación
importante se basa en el principio básico de que en
algún momento la función dejara de llamarse a sí
misma. Si la función se llamara a si misma
in nitamente no tendría ningún propósito. Por lo
tanto, cualquier función recursiva debe tener una
instrucción if (u otra sentencia condicional) para
comprobar si la función debe continuar llamándose a
sí misma o si debe devolver su resultado y detenerse.
Un ejemplo clásico para entender la recursividad es
crear una función para obtener factorial de un
número.

<?php
function factorial($n)
{
if ($n == 0) return 1;
else return $n * factorial($n - 1);
}
echo factorial(5); // Imprime 120
?>
Funciones para el manejo de hora y
fecha
Para el manejo de fechas existen tres funciones
básicas en PHP que hacen la mayoría del trabajo
necesario en la manipulación de fechas, estas son:

time(), devuelve la fecha y hora actual expresada


en segundos (desde el 1 de enero de 1970 –
llamada timestamp). Como devuelva la fecha en un
entero se puede utilizar para sumar o restar
fechas así como guardarla en base de datos.
date(), devuelve la fecha de acuerdo al formato
que de namos (Mas información de como
formatear la fecha en PHP: date – Manual). Esta
función sirve para imprimir las fechas en formatos
legibles para los visitantes.
strtotime(), convierte una texto en fecha
expresada en timestamp.
El siguiente código muestra el uso del formato
timestamp:

<?php
echo "Formato timestamp<br>";
// imprimir la hora actual
echo time();
echo "<br>";

// imprimir dos horas antes de la hora actual


echo (time()-2*60*60);
echo "<br>";

// imprimir la fecha de hace una semana


echo (time()-7*24*60*60);
echo "<br>";
?>
A continuación un ejemplo del uso de date().

<?php
echo "Uso de date()<br>";
// imprimir la fecha actual
echo date("d/m/Y");
echo "<br>";
// imprimir la hora actual
echo date("h:m:s a");
echo "<br>";
// imprimir dos horas antes de la hora actual
echo date("h:m:s a", time()-2*60*60);
echo "<br>";
?>
Formularios
Introducción
Los formularios HTML combinados con scripts PHP
son herramientas que permiten procesar y mostrar
información de forma dinámica en los sitios Web.
Para crear formularios se utiliza la etiqueta
<form></form> que tiene varios parámetros, entre
otros:

action, URL donde se procesará la información


contenida en el formulario
method, método de petición realizada al servidor
GET o POST
id, permite identi car al formulario entre otros.
class, un nombre de clase que puede servir para
cambiar la forma de presentación.
Controles en formularios
Cuadros de texto
La etiqueta <input> se utiliza para recibir datos en un
campo, los parametros mas comunes son.

name, es el nombre del campo


value, contiene el valor inicial del campo por
defecto es vacio

<?php
$usuario = 'admin';
?>
<form action="procesa.php" method="post">
<input type="text" name="usuario" value="<?= $usuario ?>
<input type="password" name="clave" value="">
</form>
Campos ocultos
Se puede incluir en los formularios campos que no
son visibles para el usuario se utiliza <input> con el
tipo hidden.

<form action="muestra.php" method="post">


<input type="text" name="nombre">
<input type="hidden" name="universidad" value="UPEA">
<input type="hidden" name="carrera" value="Sistemas">
<input type="hidden" name="nuevo" value="OK">
<input type="submit" value="Pulsa aqui">
</form>
Casillas de veri cación
Permiten recibir varias opciones en una sola
variable, en PHP se adiciona ‘[]’ al nombre de
variable para indicar que su contenido es un arreglo
con las opciones seleccionadas

<form action="procesa.php" method="post">


<label>Nombre: </label>
<input type="text" name="nombre">
<input type="checkbox" name="sistoper[]" value="Linux" che
<input type="checkbox" name="sistoper[]" value="Unix" chec
<input type="checkbox" name="sistoper[]" value="OS/2">OS/
<input type="checkbox" name="sistoper[]" value="MacOS">Mac
<input type="checkbox" name="sistoper[]" value="Windows" c
</form>
Botones de radio
<form action="procesa.php" method="post">
<label>Estado civil: </label>
<input type="radio" name="estado" value="Soltero">Solter
<input type="radio" name="estado" value="Casado" checked
<input type="radio" name="estado" value="Viudo">Viudo/a<
<input type="radio" name="estado" value="Otros">Otros
</form>
Lista de opciones
Es un control que muestra un menú de opciones

<optgroup>.
<h2>Lista de opciones</h2>
<form action="procesa.php" method="post">
<select name="select" name="turno">
<option value="1">Mañana</option>
<option value="2" selected>Tarde</option>
<option value="3">Noche</option>
</select>

<input type="submit" value="Enviar">


</form>
Subida de archivos al servidor
El control que permite subir archivos al servidor es
<input> con las siguientes características parámetro
type debe ser “ le” y el formulario debe tener el
parámetro enctype="multipart/form-data"

<form action="procesa.php" method="post" enctype="multipart/form


<input type="file" name="archivo" id="archivo"></input
<br>
<br>
<input type="submit" value="Subir al servidor"></input
</form>
Botones
<input type="submit" value="Enviar">
<input type="reset" value="Cancelar">
<button type="submit">Grabar</button>
Variables superglobales
En PHP existen variables prede nidas denominadas
"superglobales", lo que signi ca que están
disponibles en todos los ámbitos a lo largo del script.
Las variables superglobales son:

$GLOBALS

$_SERVER

$_GET

$_POST

$_FILES

$_COOKIE

$_SESSION

$_REQUEST
$GLOBALS

Es un array asociativo que contiene las referencias a


todas la variables que están de nidas en el ámbito
global del script. Los nombres de las variables son las
claves del array.

<?php
// $GLOBALS
$x = 75;
$y = 25;

function suma() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
suma();
echo $z;
?>
$_SERVER

Es un array que contiene información, tales como


cabeceras, rutas y ubicaciones de script. Las
entradas de este array son creadas por el servidor
web.

<?php
// $_SERVER
echo "<h3>Variable \$_SERVER</h3>";
echo "Archivo que se ejecuta: ".$_SERVER['PHP_SELF'];
echo "<br>";
echo "Nombre del servidor: ". $_SERVER['SERVER_NAME'];
echo "<br>";
echo "Nombre del cliente o navegador: ".$_SERVER['HTTP_USER_AGEN
echo "<br>";
echo "Nombre del script: ".$_SERVER['SCRIPT_NAME'];
?>
$_GET

Es un array asociativo que contiene las variables


enviada vía parámetros URL o usando el método GET
en el formulario.

<html>
<body>
<a href="test.php?lenguaje=PHP&materia=Emergentes">probar $GET
</body>
</html>
El archivo que procesa los datos es el siguiente:
<?php
// Archivo test.php
echo "<h3>Datos recibidos</h3>";
echo "Lenguaje " . $_GET['lenguaje'];
echo "Materia " . $_GET['materia'];
?>
$_POST

Es un array asociativo de variables envidas desde un


formulario cuyo método de envío es POST.

<html>
<body>
<form method="post" action="procesa.php">
Digita tu nombre: <input type="text" name="nombre">
<input type="submit">
</form>
El archivo que procesa los datos es el siguiente:

<?php
$nombre = $_POST['nombre'];
if (empty($nombre)) {
echo "Nombre está vacio";
} else {
echo $nombre;
}
?>
$_FILES

Es un array asociativo que contiene los archivo


subidos usando el método POST. Ejemplo:

<!DOCTYPE html>
<html>
<head>
<title>Upload de archivos</title>
</head>
<body>
<h3>Subida de archivos al Servidor</h3>
<form action="procesa.php" method="post" enctype="multip
<input type="file" name="archivo" id="archivo"
<br>
<br>
<input type="submit" value="Subir al servidor"
</form>
El archivo que procesa la subida es:

<?php
if ($_FILES['archivo']["error"] > 0) {
echo "Error: " . $_FILES['archivo']['error'] . "<br>"
}
else {
echo "Nombre: " . $_FILES['archivo']['name'] . "<br>"
echo "Tipo: " . $_FILES['archivo']['type'] . "<br>"
echo "Tamaño: " . ($_FILES["archivo"]["size"] / 1024
echo "Carpeta temporal: " . $_FILES['archivo']['tmp_name
// Muevo el archivo en la ruta deseada
$ruta = "./"
move_uploaded_file($_FILES['archivo']['tmp_name'], $ruta
}
?>
$_COOKIE

Es otra array asociativo que almacena las cookies en


el navegador del cliente. Las Cookies proveen un
mecanismo que permite guardar pequeñas
cantidades de información por un tiempo
determinado en segundos.

<?php
// Se almacena una cookie por un tiempo de 4800 segundos en $_CO
setcookie('cook_usuario', 'mtorrez', time() + 4800);
?>
Para leer una la cookie:

<?php
if (isset($_COOKIE['cook_usuario'])){
echo 'Valor de la Cookie es'. $_COOKIE['cook_usuario'];
}else{
echo 'No hay Cookies';
}
?>
$_SESSION

Es un array asociativo que guarda las variables de


sesión En las páginas donde se use sesión se debe
incluir la función sesión_start().

<?php
session_start();
// Se crean dos variables en el array session
$_SESSION['usuario'] = 'admin';
$_SESSION['login'] = 'OK';
?>
La lectura de una variable sesión puede ser realizada
de la siguiente forma:

<?php
session_start();
if (isset($_SESSION['usuario'])){
echo $_SESSION['usuario'];
}else{
echo 'No existe usuario en $_SESSION';
}
?>
$_REQUEST

Es un array asociativo que contiene el contenido de


$_GET, $_POST y $_COOKIE

<html>
<body>
<form method="post" action="procesa.php">
Digita tu nombre: <input type="text" name="nombre">
<input type="submit">
</form>
El archivo que procesa los datos es el siguiente:

<?php
// Archivo procesa.php
$nombre = $_REQUEST['nombre'];
if (empty($nombre)) {
echo "Nombre está vacio";
} else {
echo $nombre;
}
}
?>
Funciones para el proceso de
formularios
Para comprobar si un campo es obligatorio es
su ciente con comprobar si la variable asociada
contiene algún valor.

<?php
$apellido = trim($_POST['apellido']);
if ($apellido == '' ) {
echo "El apellido no puede ser vacio !!!";
}
?>
Longitud de mínima de una cadena

La función strlen() permite averiguar el tamaño de


las cadena, se puede usar de la siguiente forma:

<?php
$clave = trim($_POST['clave']);
if (strlen($clave) < 8) {
echo "La clave no puede tener menos de 8 caracteres"
}
?>
Separar cadenas en un arreglo

Una de las funciones con que cuenta PHP para el


manejo de cadenas es la función explode()

<?php
// Se enviar una fecha ej "21/09/1983";
$fecha = trim($_POST['fecha']);
$arrayFecha = explode("/", $fecha, 3);
echo $arrayFecha[0]; // imprime 21
echo $arrayFecha[1]; // imprime 09
echo $arrayFecha[2]; // imprime 1983
?>
Convertir cadenas a mayúsculas o minúsculas

Las funciones strtolower() y strtoupper().

<?php
$apellido = trim($_POST['apellido']);
$correo = trim($_POST['correo']);
$apellido = strtoupper($apellido);
$correo = strlower($correo);
?>
FIN

También podría gustarte