Está en la página 1de 57

MANUAL

SOBRE
PHP

Revisado: 10/12/2021
ÍNDICE
REQUISITOS 5
INTRODUCCIÓN 6
ESTRUCTURA PARA PONER EL CÓDIGO 7
DECLARACIÓN DE VARIABLES 8
Ejemplo 8
IMPRIMIR POR PANTALLA 9
Ejemplo 9
CONCATENACIÓN 10
Ejemplo 10
CONDICIONALES 11
Ejemplo 12
VECTORES 13
ASOCIATIVOS 14
Código 14
Ejecución del código 14
INDEXADOS 15
Código 15
Ejecución del código 15
BUCLES 15
RECORRIDO 16
Ejemplo de for 16
Código 16
Ejecución del código 16
Recorrido de un vector indexado 17
Código 17
Ejecución del código 17
Ejemplo de foreach 18
Código 18
Ejecución del código 18
Recorrido de un vector asociativo 19
Código 19
Ejecución del código 19
BÚSQUEDA 19
Ejemplo de while 20
Código 20
Ejecución del código 20
FUNCIONES 21
Ejemplo 21
Código 21
Ejecución del código 21
FICHEROS 22
Ejemplo de obtener datos del fichero csv 23
Código 23
Ejecución del código 25
Fichero csv 25
Ejemplo de obtener datos del fichero txt 26
Código 26
Ejecución del código 28
Fichero txt 28
Ejemplo de añadir nueva línea a fichero txt o csv 29
Código 29
Ejecución del código 30
Fichero csv 30
Fichero txt 31
BASES DE DATOS 32
Ejemplo de consulta a una base de datos 34
Imagen del codigo completo 38
Resultado de la ejecución del código 39
Ejemplo de operaciones update,delete,insert a una base de datos 40
Imagen del codigo completo 43
FORMULARIOS 44
Imagen 46
Ejecución del programa 47
SESSIONS 48
Declaración de una cookie 48
Código de la creación de la session 48
Imagen del código 49
Para ver la session en otra página web 50
Código de la visualización de la session 50
Imagen del código 50
Resultado 50
COOKIES 51
Declaración de una cookie 52
Código de la creación de la cookie 52
Imagen del código 53
Para ver la cookie en otra página web 54
Código de la visualización de la cookie 54
Imagen del código 54
Resultado 54
EJERCICIOS PARA CASA 56
REQUISITOS

● Tener instalado el XAMPP

● Tener instalado un programa de editor de código que nos permita editar


nuestro código de forma cómoda.

● Este manual usa PHP versión 8.0.9

Posdata, si tiene dudas de la instalación del XAMPP diríjase al apartado


instalación del servidor en el siguiente manual para su correcta instalación.
https://www.alebuntu.es/manual-sobre-mysql/
INTRODUCCIÓN
Este manual está hecho para un repaso de PHP, para aprender los conceptos
básicos de este lenguaje de programación. Como estamos usando XAMPP
recordar que los archivos de nuestro código con extensión .php tienen que estar
en una carpeta llamada htdocs que está dentro de la carpeta llamada xampp. En
la instalación del XAMPP habrás indicado donde poner dicha carpeta, así que
no tendrás problemas para encontrarla.

Recordemos también que php es usado para paginamiento web, por lo tanto es
necesario acceder al servidor web del XAMPP para ello, en un navegador web,
en la url ponemos: http://localhost y de esta manera depende de lo que hayas
programado lo podremos ver visualizado en la página web.
ESTRUCTURA PARA PONER EL
CÓDIGO
En la parte comentada en donde meteremos nuestro código de php.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>

<?php

#CODIGO DE PHP

?>

</body>
</html>
DECLARACIÓN DE VARIABLES
Para la declaración de variables no hace falta indicar el tipo de dato por lo tanto
si tu quieres declarar un entero, un float , un booleano o cualquier otro tipo de
dato directamente asignalo a la variable y ya le habrás indicado con ello el tipo
de dato que va a tener asignado, lo único debes recordar es que antes de
nombrar la variable debes poner un $ y después para terminar ponemos un ;

Ejemplo
IMPRIMIR POR PANTALLA
Para imprimir por pantalla datos para así ver lo que ocurre en nuestro programa
tenemos una función llamada echo que nos permite mostrar lo que metamos
como parámetro.

Ejemplo

Código

Ejecución del código


CONCATENACIÓN
Para concatenar tenemos el punto (.) , además recordar poner siempre <br>
para poder hacer salto de línea:

Ejemplo

Código

Ejecución del código


CONDICIONALES
Los condicionales como su palabra indica es solamente indicar una condición
para que se cumpla una parte del programa, para declarar esa condición se hace
con un if más la condición y luego dos puntos.

OPERADOR CONDICIÓN RESULTADO


== (2==2) TRUE
<= (2<=2) TRUE
>= (2>=2) TRUE
!= (2!=2) FALSE
< (2>2) FALSE
> (2<2) FALSE
! (!(2>2)) TRUE
&& (2==2) && (2!=2) FALSE
|| (2==2) || (2!=2) TRUE
Ejemplo

Código

Ejecución del código


VECTORES
Antes de explicar vectores nombró tres funciones que serán útiles para analizar
un vector.

print_r(vector_que_metamos) : Esta función me muestra todo el contenido del


vector

var_dump(vector_que_metamos) : Esta función me muestra todo el contenido


del vector y además el tipo de dato de los elementos del vector.

sizeof(vector_que_metamos): Para ver el tamaño del vector.

Tenemos dos tipos de vectores:

- ASOCIATIVOS
- INDEXADOS
ASOCIATIVOS

Los asociativos son también llamados clave valor son los vectores que por cada
elemento o valor que contenga un vector tiene asociado una clave.

Código

Ejecución del código


INDEXADOS

Los no asociativos son los típicos vectores que tienen asociado un índice
numérico por cada elemento del vector, empezando en cero el primer elemento
del vector y así consecutivamente.

Código

Ejecución del código


BUCLES
Los bucles pueden ser de dos tipos de recorrido o de búsqueda, dependiendo si
es de un tipo u otro se usará for y foreach o while.

RECORRIDO

El bucle de recorrido está pensado cuando vamos a recorrer todos los datos
hasta el final o a repetir algo un número determinado de veces.

Ejemplo de for

Código

Ejecución del código


Recorrido de un vector indexado

Al ser un vector indexado lo podemos recorrer con índices numéricos.

Código

Ejecución del código


Ejemplo de foreach
Principalmente el foreach se suele usar para recorrer vectores asociativos o para
recorrer los vectores que contiene un vector sin usar índices numéricos.

Código

Ejecución del código


Recorrido de un vector asociativo

Al ser un vector asociativo podemos recorrerlo y viendo su clave y su valor.

Código

Ejecución del código


BÚSQUEDA

El bucle de búsqueda está pensado para que termine una vez que hayamos
encontrado lo que queríamos, es decir, que la condición del while no devuelva
false.

Ejemplo de while

Código

Ejecución del código


FUNCIONES
Son fáciles de implementar y no hace falta indicar si devuelve datos ni tampoco
decir que tipo de datos meteremos como parámetro. Pero tener en cuenta que si
la función hace sumas con los parámetros y tu metes como parámetro una
cadena y un número entonces el programa te dará error.

Ejemplo

Código

Ejecución del código


FICHEROS
En PHP también podemos manejar ficheros.Hay varias funciones que explicaré
a continuación.

Función fopen: Es la que abre el fichero para poder editarlo.

El primer parámetro indica la ruta del archivo, el segundo parámetro la


operación(“r”-> Lectura , “w” -> Borra todo y vuelve a escribir , a -> “Añadir
desde lo que tiene ya”) que vamos hacer después con el archivo.

Las funciones fgets y fgetcsv: Nos permite acceder a los datos del fichero.

Función fwrite: Nos escribe en el fichero.

Función fclose: Nos cierra el fichero.


Ejemplo de obtener datos del fichero csv

Código

function obtener_datos_csv($fichero)
{

if ($fich = fopen($fichero, "r")) {

$i = 0;
while ($datos[$i] = fgetcsv($fich, 0, ";")) {
++$i;
}
fclose($fich);
}

return $datos;
}

$datos_procesados = obtener_datos_csv("archivo.csv");
echo "<br><h4>DATOS DEL FICHERO</h4>";
print_r($datos_procesados);
echo "<br><h4>FILAS</h4>";
for ($i = 0; $i < sizeof($datos_procesados) && $datos_procesados[$i] !=
""; $i++) {

print_r($datos_procesados[$i]);
echo "<br>";
echo "<br>";
}
Ejecución del código

Fichero csv
Ejemplo de obtener datos del fichero txt

Código

function obtener_datos_txt($fichero)
{

if ($fich = fopen($fichero, "r")) {

$i = 0;
while ($datos[$i] = fgets($fich)) {
++$i;
}
fclose($fich);
}

return $datos;
}

$datos_procesados = obtener_datos_txt("archivo.txt");
echo "<br><h4>DATOS DEL FICHERO</h4>";
print_r($datos_procesados);
echo "<br><h4>FILAS</h4>";
for ($i = 0; $i < sizeof($datos_procesados) && $datos_procesados[$i] !=
""; $i++) {

print_r($datos_procesados[$i]);
echo "<br>";
echo "<br>";
}
Ejecución del código

Fichero txt
Ejemplo de añadir nueva línea a fichero txt o csv
Si no existe el archivo me lo crea automáticamente.

Código

function add_linea($fichero, $cadena)


{
$file = fopen($fichero, "a");
fwrite($file, "\n".$cadena);
fclose($file);
}

add_linea("archivo.txt","Nueva linea");
add_linea("archivo.csv","Nueva linea;aaaaa;aaaaa");
Ejecución del código
Solamente mostrar pagina web

Fichero csv

Antes de la ejecución

Después de la ejecución
Fichero txt

Antes de la ejecución

Después de la ejecución
BASES DE DATOS
En PHP debemos crear nuestra propia base de datos antes de empezar a
programar en php la conexión a la base de datos, para ello debemos tener
instalado un servidor de base de datos como maria db o mysql server. Nosotros
usaremos el que tiene el XAMPP por defecto. Y con phpmyadmin , nos
crearemos una base de datos con una tabla que tenga los siguientes campos:
codcliente,dni,apellidos,nombre,direccion,telefono
Me creo un cliente
Ejemplo de consulta a una base de datos
Ahora pasaremos a php con mysql.
Antes que nada hacemos la estructura html para meter nuestros datos de la base
de datos:
Por ejemplo algo asi:

<!DOCTYPE html>
<head><title></title></head>
<body>
<!-- PRINT THE TABLE AND THE HEADER -->
<table style="border:1px solid black">
<thead>
<tr>
<th>CodCliente</th>
<th>DNI</th>
<th>Apellidos</th>
<th>Nombre</th>
<th>Direccion</th>
<th>Telefono</th>
</tr>
</thead>

Primero hacemos la etiqueta php:

<?php
?>

Una vez dentro hacemos lo siguiente:

1.- Hacemos una conexión con la base de datos:

// CREAMOS LA CONEXION PARA CONECTARNOS A LA BASE DE


DATOS
$conexion = mysqli_connect('localhost', 'root', '', 'prueba');

2.- Comprobamos que funciona la conexión

// SI LA CONEXION NO FUNCIONA QUE ME MUESTRE EL ERROR


ESPECIFICO
if (!$conexion) {
echo "<br>El error especifico del fallo de la conexion es: " .
mysqli_connect_error() . "<br><br>";
}

3.- Luego hacemos una consulta que guarde resultado y nos muestre las filas
guardadas y probamos la consulta.

// SI LA CONEXION FUNCIONA QUE INTENTE HACER LA


CONSULTA
else {

$consulta = "select * from clientes;";

$resultado = mysqli_query($conexion, $consulta);


4.- Después ponemos en un if que si no funciona la consulta salga error y si no
que me muestre los datos asociados:

// SI LA CONSULTA ESTA MAL FORMADA QUE ME MUESTRE ERROR


EN LA CONSULTA
if (!$resultado) {

echo "Error en la consulta";

// SI LA CONSULTA ESTA BIEN HECHA, QUE ME RECORRA


LOS DATOS DE LA CONSULTA
else {

$numero_filas_obtenidas = mysqli_num_rows($resultado);

// SI LA CONSULTA NO ME DEVUELVE DATOS, QUE


TERMINE QUE NO ME META EN EL WHILE
if ($numero_filas_obtenidas > 0) {

// RECORRO CADA FILA DE LA CONSULTA REALIZADA


while ($datoCliente = mysqli_fetch_assoc($resultado)) {

//IMPRIMO LOS DATOS DE CADA FILA DE LA


CONSULTA
echo "<tr>";
echo "<td>" . $datoCliente['codcliente'] . "</td>";
echo "<td>" . $datoCliente['dni'] . "</td>";
echo "<td>" . $datoCliente['apellidos'] . "</td>";
echo "<td>" . $datoCliente['nombre'] . "</td>";
echo "<td>" . $datoCliente['direccion'] . "</td>";
echo "<td>" . $datoCliente['telefono'] . "</td>";
echo "</tr>";
}
}
}
5.- Por último liberamos la consulta resultante y cerramos la conexión y
cerramos el else:

// LIMPIO EL RESULTADO
mysqli_free_result($resultado);

// CIERRO CONEXION
mysqli_close($conexion);

}
Imagen del codigo completo
Resultado de la ejecución del código
Ejemplo de operaciones update,delete,insert a una base de datos

1.- Hacemos una conexión con la base de datos:

// CREAMOS LA CONEXIÓN PARA CONECTARNOS A LA BASE DE


DATOS
$conexion = mysqli_connect('localhost', 'root', '', 'prueba');

2.- Comprobamos que funciona la conexión

// SI LA CONEXIÓN NO FUNCIONA QUE ME MUESTRE EL ERROR


ESPECÍFICO
if (!$conexion) {
echo "<br>El error especifico del fallo de la conexion es: " .
mysqli_connect_error() . "<br><br>";
}
3.- Luego hacemos una consulta que pueda insertar, eliminar o editar datos de
una tabla.

// SI LA CONEXIÓN FUNCIONA QUE INTENTE HACER LA QUERY


QUE HAYAMOS ESTABLECIDO
else {

// EN ESTA PARTE ELEGIMOS UNA DE LAS TRES CONSULTAS,


RECORDAR QUE LAS CONSULTAS DEBEN SER UNA SOLA LÍNEA

// CONSULTA DE INSERCIÓN
$consulta1 = "INSERT INTO clientes
(codcliente,dni,apellidos,nombre,direccion,telefono) VALUES
(2,'12345','normandi','aleji','de la puebla',122334)";

// CONSULTA DE ACTUALIZACIÓN
$consulta2 = "UPDATE clientes SET nombre='alejo' WHERE codcliente=2";

// CONSULTA DE ELIMINACIÓN
$consulta3 = "DELETE FROM clientes WHERE codcliente=2";

// ELIJO LA CONSULTA QUE QUIERO REALIZAR

$resultado = mysqli_query($conexion, $consulta1);


4.- Después ponemos en un if que si no funciona la consulta salga error y si no
que me muestre los datos asociados:

// SI LA CONSULTA ESTA MAL FORMADA QUE ME MUESTRE ERROR


EN LA CONSULTA

//PONEMOS LA CONSULTA QUE QUERAMOS EJECUTAR DE LAS


TRES
if (!$resultado) {

echo "Error en la consulta";

// SI LA CONSULTA ESTA BIEN ECHA,


else {

echo "Consulta realizada exitosamente";

}
6.- Por último cerramos la conexión y cerramos el else:

// CIERRO CONEXION
mysqli_close($conexion);

}
Imagen del codigo completo
FORMULARIOS
Para introducir datos por teclado tenemos una etiqueta html que nos permite
esta función, donde podemos meter un texto desde la página web, y después con
un botón nos permite enviar, yo dejo una estructura sencilla y clásica de este
tipo de código.

Para que podáis copiar el código:

<?php
if (isset($_POST["login"])) {

// INICIALIZAR EL VECTOR DONDE ESTARÁN LOS POSIBLES ERRORES


$errores = [];

// SANO LOS DATOS QUE PUEDAN ESTAR MAL


$usuario = filter_var($_POST["usuario"], FILTER_SANITIZE_STRING);
$password = filter_var($_POST["password"], FILTER_SANITIZE_STRING);

// MIRO POSIBLES ERRORES


if (!isset($usuario) || $usuario == "") {
$errores[] = "Necesita introducir el usuario";
}

if (!password) || password == "") {

$errores[] = "Necesita introducir el password";


}

// SI HAY ERRORES QUE ME LO MUESTRE


if (sizeof($errores) > 0) {

echo "<div>";
foreach ($errores as $error) {

echo "<p id='error'><font color='red'>" . $error .


"</font></p>";
}
echo "</div>";
}
// SI NO HAY ERRORES QUE ME ENVÍE EL FORMULARIO
else {

echo "Formulario enviado correctamente";

echo "<br>";

echo "<br>";

echo "Usuario= " . $_POST["usuario"];

echo "<br>";

echo "<br>";

echo "Password= " . $_POST["password"];


}
}

// SI TODAVÍA NO HE ENVIADO DATOS QUE SE MUESTRE EL FORMULARIO


else {
?>

<form method="POST" action="#">


<div>
<label>Name: </label>
<input type="text" name="usuario" />
</div>
<div>
<label>Password: </label>
<input type="password" name="password" />
</div>

<div>
<input type="submit" value="Entrar" name="login">
</div>
</form>
<?php
}
?>
Saneo y filtro
Imagen
Ejecución del programa
SESSIONS
Las sesiones una vez declaradas se quedan vivas hasta que las eliminemos y
solo podemos acceder a ellas si hemos iniciado sesión previamente en la página
web. Una vez que se ha eliminado una sesión, la única forma de recuperarla es
ir a la página web que declara esa sesión.

Declaración de una sesión

Código de la creación de la session


<!DOCTYPE html>
<?php session_start(); ?>
<html>

<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<meta name="viewport" content="width=device-width,
initial-scale=1">
</head>

<body>

<?php
$value = 'esta es una session de alebuntu y funcionara en la
paginas donde se inicie sesion';

$_SESSION['alebuntu'] = $value;
?>
</body>

</html>
Imagen del código
Para ver la session en otra página web

Código de la visualización de la session


<?php session_start(); ?>

<?php

if (isset($_SESSION["alebuntu"])) {

echo "Existe una sesión <br><br>";


echo $_SESSION["alebuntu"];

echo "Eliminando sesión, si quieres recuperarla, es necesario que


vaya a la pagina que genero la sesión";
unset($_SESSION["alebuntu"]);
} else {

echo "No existe variable de sesión";


}

?>

Imagen del código


Resultado

Creó la sesión al ir a la página web, y a partir de ese momento la sesión tiene


vida hasta que la eliminemos, y funcionará en cualquier lado de nuestra
máquina cliente si en las páginas web hemos iniciado sesión previamente.

Como podemos observar por ahora la sesión está activa:

Si volvemos a actualizar, veremos que ya no está activa, esto es debido a que la


primera vez que accedimos a esta pagina nos mostró la variable de session y
luego se eliminó:
COOKIES
Las cookies una vez declaradas se quedan vivas todo el tiempo que le
indiquemos, pero si recargamos la página donde está la declaración de la cookie
entonces el contador vuelve a empezar.

Declaración de una cookie

Código de la creación de la cookie


<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<meta name="viewport" content="width=device-width,
initial-scale=1">
</head>

<body>

<?php
$value = 'esta información dura 5 segundos en otras pagina webs';

setcookie("CookieAlebuntu", $value, time() + 5); /* expira en 5


segundos */
?>
</body>

</html>
Imagen del código
Para ver la cookie en otra página web

Código de la visualización de la cookie


<?php

if(isset($_COOKIE["CookieAlebuntu"])){
echo "Cookie sigue activa<br>";
echo $_COOKIE["CookieAlebuntu"];

}else{

echo "Cookie ya no sigue activa";

?>

Imagen del código


Resultado

Creó la cookie al ir a la página web, y a partir de ese momento la cookie tiene


de vida el tiempo que le hayamos dado, y funcionará en cualquier lado de
nuestra máquina cliente.

Como podemos observar por ahora la cookie está activa:

Si volvemos a actualizar, donde seguramente ya habrán pasado 5 segundos:


EJERCICIOS PARA CASA
1.

1.- Declara 4 tipos diferentes de datos y usa la función var_dump($variable);


para ver qué tipo de dato te ha cogido.

2.- Hazme una función que me genere un vector de 5 números aleatorios,


posdata no vale usar funciones como rand(), debes fabricar tu mismo la función.

3.- Prueba hacer una concatenación de 3 variables.

4.- Haz una función que me calcule la altura de un triángulo equilátero con los
tres lados que miden 10 metros.

5.- Busca un número en un vector de 10 números.

6.- Crea un fichero y debes conseguir eliminar una fila del fichero y sustituirla
por otra.

7.- Crea una base de datos con 2 tablas y consigue hacer consultas a una de las
dos tablas y eliminaciones de filas a la otra tabla.

8.- Crea un formulario que te loguee con una base de datos.

9.- Crea una variable de sesión y que al recargar 5 veces la página se elimine la
variable de sesión.

10.- Crea una cookie y que caduque al cabo de 13 segundos

También podría gustarte