Materia
Programación Web
Docente
I.S.C. Rusell Renán Iuit Manzanero
Integrantes:
Br. Chi Canche Omar Alexis - 17070004
Br. Pool Diaz Ángel Enrique - 17070068
Br. Nauat Duran Alejandro de la Cruz – 17070026
Br. Pomol Couoh Israel – 17070032
Grupo Y Semestre
6-B Vespertino
Tema 4
Resumen PHP
03 de mayo de 2020
Introducción
¿Qué es PHP?
• PHP es un acrónimo de "PHP: preprocesador de hipertexto"
• PHP es un lenguaje de script de código abierto ampliamente utilizado
• Los scripts PHP se ejecutan en el servidor
• PHP es gratis para descargar y usar
¿Qué es un archivo PHP?
• Los archivos PHP pueden contener texto, HTML, CSS, JavaScript y código
PHP
• El código PHP se ejecuta en el servidor y el resultado se devuelve al
navegador como HTML sin formato
• Los archivos PHP tienen la extensión " .php"
¿Qué puede hacer PHP?
• PHP puede generar contenido de página dinámico
• PHP puede crear, abrir, leer, escribir, eliminar y cerrar archivos en el
servidor
• PHP puede recopilar datos de formulario
• PHP puede enviar y recibir cookies
• PHP puede agregar, eliminar, modificar datos en su base de datos
• PHP puede usarse para controlar el acceso de los usuarios
• PHP puede encriptar datos
Con PHP no está limitado a la salida HTML. Puede generar imágenes, archivos
PDF e incluso películas Flash. También puede generar cualquier texto, como
XHTML y XML.
Variables
Las variables son "contenedores" para almacenar información.
Crear (declarar) variables PHP
En PHP, una variable comienza con el $signo, seguido del nombre de la variable:
Variables PHP
Una variable puede tener un nombre corto (como x e y) o un nombre más
descriptivo (edad, nombre del automóvil, volumen_total).
Reglas para variables PHP:
• Una variable comienza con el $signo, seguido del nombre de la variable.
• Un nombre de variable debe comenzar con una letra o el carácter de
subrayado
• Un nombre de variable no puede comenzar con un número
• Un nombre de variable solo puede contener caracteres alfanuméricos y
guiones bajos (Az, 0-9 y _)
• Los nombres de las variables distinguen entre mayúsculas y minúsculas
( $agey $AGEson dos variables diferentes)
Variables de salida
La echodeclaración PHP a menudo se usa para generar datos en la pantalla.
El siguiente Ejemplo mostrará cómo generar texto y una variable:
Ejemplo
<?php
$txt = "[Link]";
echo "I love $txt!";
?>
El siguiente Ejemplo producirá el mismo resultado que el Ejemplo anterior:
Ejemplo
<?php
$txt = "[Link]";
echo "I love " . $txt . "!";
?>
El siguiente Ejemplo generará la suma de dos variables:
Ejemplo
<?php
$x = 5;
$y = 4;
echo $x + $y;
?>
Nota: Aprenderá más sobre la echo declaración y cómo generar datos en la
pantalla en el próximo capítulo.
PHP es un lenguaje mecanografiado libremente
En el Ejemplo anterior, observe que no teníamos que decirle a PHP qué tipo de
datos es la variable.
PHP asocia automáticamente un tipo de datos a la variable, dependiendo de su
valor. Dado que los tipos de datos no están establecidos en un sentido estricto,
puede hacer cosas como agregar una cadena a un entero sin causar un error.
En PHP 7, se agregaron declaraciones de tipo. Esto ofrece una opción para
especificar el tipo de datos esperado al declarar una función, y al habilitar el
requisito estricto, arrojará un "Error fatal" en una falta de coincidencia de tipos.
Usted aprenderá más sobre stricty non-strict requisitos, y declaraciones de tipo de
datos de la Funciones PHP capítulo.
Alcance de variables PHP
En PHP, las variables se pueden declarar en cualquier parte del script.
El alcance de una variable es la parte del script donde la variable puede ser
referenciada / utilizada.
PHP tiene tres ámbitos variables diferentes:
• local
• global
• estático
Alcance global y local
Una variable declarada fuera de una función tiene un ALCANCE GLOBAL y solo
se puede acceder fuera de una función:
Ejemplo
Variable con alcance global:
<?php
$x = 5; // global scope
function myTest() {
// using x inside this function will generate an error
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
echo "<p>Variable x outside function is: $x</p>";
Una variable declarada dentro de una función tiene un ALCANCE LOCAL y solo
se puede acceder dentro de esa función:
Ejemplo
Variable con alcance local:
<?php
function myTest() {
$x = 5; // local scope
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
// using x outside the function will generate an error
echo "<p>Variable x outside function is: $x</p>
PHP La palabra clave global
La globalpalabra clave se utiliza para acceder a una variable global desde una
función.
Para hacer esto, use la globalpalabra clave antes de las variables (dentro de la
función):
Ejemplo
<?php
$x = 5;
$y = 10;
function myTest() {
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
?>
PHP también almacena todas las variables globales en una matriz
llamada . El contiene el nombre de la variable. Esta matriz también es accesible
desde dentro de las funciones y se puede usar para actualizar variables globales
directamente.$GLOBALS[index]index
El Ejemplo anterior se puede reescribir así:
Ejemplo
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
PHP La palabra clave estática
Normalmente, cuando se completa / ejecuta una función, se eliminan todas sus
variables. Sin embargo, a veces queremos que una variable local NO se
elimine. Lo necesitamos para otro trabajo.
Para hacer esto, use la staticpalabra clave cuando declare la variable por primera
vez:
Ejemplo
<?php
function myTest() {
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
Imprimir echo
PHP echo y declaraciones de impresión
Con PHP, hay dos formas básicas de obtener salida: echoy print.
PHP echo y declaraciones de impresión
echoy printson más o menos lo mismo. Ambos se utilizan para enviar datos a la
pantalla.
Las diferencias son pequeñas: echono tiene valor de retorno, mientras
que printtiene un valor de retorno de 1, por lo que puede usarse en
expresiones. echopuede tomar múltiples parámetros (aunque dicho uso es raro)
mientras que printpuede tomar un argumento. echoes marginalmente más rápido
que print.
La declaración de eco PHP
La echodeclaración se puede usar con o sin paréntesis: echoo echo().
Mostrar texto
El siguiente Ejemplo muestra cómo generar texto con el echo comando (observe
que el texto puede contener marcado HTML):
Ejemplo
<?php
echo "<h2>PHP is Fun!</h2>";
echo "Hello world!<br>";
echo "I'm about to learn PHP!<br>";
echo "This ", "string ", "was ", "made ", "with multiple parameters.";
?>
Mostrar variables
El siguiente Ejemplo muestra cómo generar texto y variables con
la echo instrucción:
Ejemplo
<?php
$txt1 = "Learn PHP";
$txt2 = "[Link]";
$x = 5;
$y = 4;
echo "<h2>" . $txt1 . "</h2>";
echo "Study PHP at " . $txt2 . "<br>";
echo $x + $y;
?>
La declaración impresa de PHP
La print declaración se puede usar con o sin paréntesis: printo print().
Mostrar texto
El siguiente Ejemplo muestra cómo generar texto con el print comando (observe
que el texto puede contener marcado HTML):
Ejemplo
<?php
print "<h2>PHP is Fun!</h2>";
print "Hello world!<br>";
print "I'm about to learn PHP!";
?>
Tipos de datos
Tipos de datos PHP
Las variables pueden almacenar datos de diferentes tipos, y diferentes tipos de
datos pueden hacer cosas diferentes.
PHP admite los siguientes tipos de datos:
• Cuerda
• Entero
• Flotador (números de coma flotante, también llamado doble)
• Booleano
• Formación
• Objeto
• NULO
• Recurso
Cadena PHP
Una cadena es una secuencia de caracteres, como "¡Hola, mundo!".
Una cadena puede ser cualquier texto entre comillas. Puede usar comillas simples
o dobles:
Ejemplo
<?php
$x = "Hello world!";
$y = 'Hello world!';
echo $x;
echo "<br>";
echo $y;
?
PHP entero
Un tipo de datos entero es un número no decimal entre -2,147,483,648 y
2,147,483,647.
Reglas para enteros:
• Un entero debe tener al menos un dígito
• Un entero no debe tener un punto decimal
• Un número entero puede ser positivo o negativo.
• Los enteros se pueden especificar en: notación decimal (base 10),
hexadecimal (base 16), octal (base 8) o binaria (base 2)
En el siguiente Ejemplo, $ x es un número entero. La función PHP var_dump ()
devuelve el tipo de datos y el valor:
Ejemplo
<?php
$x = 5985;
var_dump($x);
?>
PHP Float
Un flotante (número de coma flotante) es un número con un punto decimal o un
número en forma exponencial.
En el siguiente Ejemplo, $ x es un flotante. La función PHP var_dump () devuelve
el tipo de datos y el valor:
Ejemplo
<?php
$x = 10.365;
var_dump($x);
?>
PHP booleano
Un booleano representa dos estados posibles: VERDADERO o FALSO.;
Los booleanos se usan a menudo en pruebas condicionales. Aprenderá más sobre
las pruebas condicionales en un capítulo posterior de este tutorial.
Matriz PHP
Una matriz almacena múltiples valores en una sola variable.
En el siguiente Ejemplo, $ cars es una matriz. La función PHP var_dump ()
devuelve el tipo de datos y el valor:
Ejemplo
<?php
$cars = array("Volvo","BMW","Toyota");
var_dump($cars);
?>
Aprenderá mucho más sobre las matrices en capítulos posteriores de este tutorial.
Objeto PHP
Un objeto es un tipo de datos que almacena datos e información sobre cómo
procesar esos datos.
En PHP, un objeto debe declararse explícitamente.
Primero debemos declarar una clase de objeto. Para esto, usamos la palabra
clave class. Una clase es una estructura que puede contener propiedades y
métodos:
Ejemplo
<?php
class Car {
function Car() {
$this->model = "VW";
}
}
// create an object
$herbie = new Car();
// show object properties
echo $herbie->model;
?
Valor NULL PHP
Null es un tipo de datos especial que solo puede tener un valor: NULL.
Una variable de tipo de datos NULL es una variable que no tiene ningún valor
asignado.
Las variables también se pueden vaciar estableciendo el valor en NULL:
Ejemplo
<?php
$x = "Hello world!";
$x = null;
var_dump($x);
?>
Cadenas
Una cadena es una secuencia de caracteres, como "¡Hola, mundo!".
Funciones de cadena PHP
En este capítulo veremos algunas funciones de uso común para manipular
cadenas.
strlen () - Devuelve la longitud de una cadena
La strlen()función PHP devuelve la longitud de una cadena.
Ejemplo
Devuelve la longitud de la cadena "¡Hola mundo!":
<?php
echo strlen("Hello world!"); // outputs 12
?>
str_word_count () - Cuenta palabras en una cadena
La str_word_count()función PHP cuenta el número de palabras en una cadena.
Ejemplo
Cuente el número de palabras en la cadena "¡Hola mundo!":
<?php
echo str_word_count("Hello world!"); // outputs 2
?>
strrev () - Invierte una cadena
La strrev()función PHP invierte una cadena.
Ejemplo
Invierta la cadena "¡Hola mundo!":
<?php
echo strrev("Hello world!"); // outputs !dlrow olleH
?>
strpos () - Busca un texto dentro de una cadena
La strpos()función PHP busca un texto específico dentro de una cadena. Si se
encuentra una coincidencia, la función devuelve la posición del personaje de la
primera coincidencia. Si no se encuentra ninguna coincidencia, devolverá FALSE.
Ejemplo
Busque el texto "mundo" en la cadena "¡Hola mundo!":
<?php
echo strpos("Hello world!", "world"); // outputs 6
?
str_replace () - Reemplazar texto dentro de una cadena
La str_replace()función PHP reemplaza algunos caracteres con otros caracteres
en una cadena.
Ejemplo
Reemplace el texto "mundo" con "Dolly":
<?php
echo str_replace("world", "Dolly", "Hello world!"); // outputs Hello Dolly!
?>
Números
En este capítulo analizaremos en profundidad los números enteros, flotantes y
cadenas de números.
Números PHP
Una cosa a tener en cuenta sobre PHP es que proporciona conversión automática
de tipo de datos.
Entonces, si asigna un valor entero a una variable, el tipo de esa variable será
automáticamente un entero. Luego, si asigna una cadena a la misma variable, el
tipo cambiará a una cadena.
Esta conversión automática a veces puede romper su código.
PHP enteros
Un número entero es un número sin ninguna parte decimal.
2, 256, -256, 10358, -179567 son todos enteros. Mientras que 7.56, 10.0, 150.67
son flotadores.
Por lo tanto, un tipo de datos entero es un número no decimal entre -2147483648
y 2147483647. Un valor mayor (o menor) que este, se almacenará como flotante,
ya que excede el límite de un entero.
Otra cosa importante a saber es que incluso si 4 * 2.5 es 10, el resultado se
almacena como flotante, porque uno de los operandos es un flotante (2.5).
Aquí hay algunas reglas para enteros:
• Un entero debe tener al menos un dígito
• Un entero no debe tener un punto decimal
• Un número entero puede ser positivo o negativo.
• Los enteros se pueden especificar en tres formatos: decimal (basado en
10), hexadecimal (basado en 16 - prefijado con 0x) u octal (basado en 8 -
prefijado con 0)
PHP tiene las siguientes funciones para verificar si el tipo de una variable es
entero:
• is_int ()
• is_integer () - alias de is_int ()
• is_long () - alias de is_int ()
Ejemplo
Compruebe si el tipo de una variable es entero:
<?php
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
?>
Flotadores PHP
Un flotador es un número con un punto decimal o un número en forma
exponencial.
2.0, 256.4, 10.358, 7.64E + 5, 5.56E-5 son flotantes.
El tipo de datos flotantes comúnmente puede almacenar un valor de hasta
1.7976931348623E + 308 (depende de la plataforma) y tiene una precisión
máxima de 14 dígitos.
PHP tiene las siguientes funciones para verificar si el tipo de una variable es
flotante:
• is_float ()
• is_double () - alias de is_float ()
Ejemplo
Compruebe si el tipo de una variable es flotante:
<?php
$x = 10.365;
var_dump(is_float($x));
?>
PHP Infinity
Un valor numérico que es mayor que PHP_FLOAT_MAX se considera infinito.
PHP tiene las siguientes funciones para verificar si un valor nu mérico es finito o
infinito:
• is_finite ()
• es infinito()
Sin embargo, la función PHP var_dump () devuelve el tipo de datos y el valor:
Ejemplo
Compruebe si un valor numérico es finito o infinito:
<?php
$x = 1.9e411;
var_dump($x);
?>
PHP NaN
NaN significa No es un número.
NaN se usa para operaciones matemáticas imposibles.
PHP tiene las siguientes funciones para verificar si un valor no es un número:
• is_nan ()
Sin embargo, la función PHP var_dump () devuelve el tipo de datos y el valor:
Ejemplo
El cálculo no válido devolverá un valor NaN:
<?php
$x = acos(8);
var_dump($x);
?>
PHP cadenas numéricas
La función PHP is_numeric () se puede usar para encontrar si una variable es
numérica. La función devuelve verdadero si la variable es un número o una
cadena numérica, de lo contrario, falso.
Ejemplo
Compruebe si la variable es numérica:
<?php
$x = 5985;
var_dump(is_numeric($x));
$x = "5985";
var_dump(is_numeric($x));
$x = "59.85" + 100;
var_dump(is_numeric($x));
$x = "Hello";
var_dump(is_numeric($x));
?>
Constantes
Las constantes son como variables, excepto qu e una vez que se definen no se
pueden cambiar ni definir.
Constantes PHP
Una constante es un identificador (nombre) para un valor simple. El valor no se
puede cambiar durante el script.
Un nombre constante válido comienza con una letra o un guión bajo (sin signo $
antes del nombre constante).
Crear una constante de PHP
Para crear una constante, use la define()función.
Sintaxis
Parámetros:
• nombre : especifica el nombre de la constante
• valor : especifica el valor de la constante
• sin distinción entre mayúsculas y minúsculas : especifica si el nombre
constante debe ser insensible entre mayúsculas y minúsculas. El valor
predeterminado es falso
Ejemplo
Cree una constante con un nombre que distinga entre mayúsculas y
minúsculas :
<?php
define("GREETING", "Welcome to [Link]!");
echo GREETING;
?>
Ejemplo
Cree una constante con un nombre que no distinga entre mayúsculas y
minúsculas :
<?php
define("GREETING", "Welcome to [Link]!", true);
echo greeting;
?>
Matrices constantes de PHP
En PHP7, puede crear una constante de matriz utilizando la define()función.
Ejemplo
Crear una constante de matriz:
<?php
define("cars", [
"Alfa Romeo",
"BMW",
"Toyota"
]);
echo cars[0];
?>
Las constantes son globales
Las constantes son automáticamente globales y se pueden usar en todo el script.
Ejemplo
Este Ejemplo usa una constante dentro de una función, incluso si está definida
fuera de la función:
<?php
define("GREETING", "Welcome to [Link]!");
function myTest() {
echo GREETING;
}
myTest();
?>
Operadores
Los operadores se utilizan para realizar operaciones en variables y valores.
PHP divide a los operadores en los siguientes grupos:
• Operadores aritméticos
• Operadores de Asignación
• Operadores de comparación
• Operadores de aumento / disminución
• Operadores logicos
• Operadores de cadenas
• Operadores de matriz
• Operadores de asignación condicional
Sentencia if
Las declaraciones condicionales se utilizan para realizar diferentes acciones
basadas en diferentes condiciones.
Declaraciones condicionales PHP
Muy a menudo cuando escribe código, desea realizar diferentes acciones para
diferentes condiciones. Puede usar declaraciones condicionales en su código para
hacer esto.
En PHP tenemos las siguientes declaraciones condicionales:
• if instrucción: ejecuta algún código si una condición es verdadera
• if...else instrucción: ejecuta un código si una condición es verdadera y otro
código si esa condición es falsa
• if...elseif...else instrucción: ejecuta diferentes códigos para más de dos
condiciones
• switch instrucción: selecciona uno de los muchos bloques de código que se
ejecutarán
PHP - La declaración if
La ifinstrucción ejecuta algún código si u na condición es verdadera.
Ejemplo
Salida "¡Que tengas un buen día!" si la hora actual (HORA) es inferior a 20:
<?php
$t = date("H");
if ($t < "20") {
echo "Have a good day!";
}
?>
PHP - La declaración if ... else
La if...elseinstrucción ejecuta algún código si una condición es verdadera y otro
código si esa condición es falsa.
Sintaxis
if (condition) {
code to be executed if condition is true;
} else {
code to be executed if condition is false;
}
Ejemplo
Salida "¡Que tengas un buen día!" si la hora actual es inferior a 20 y "¡Ten una
buena noche!" de otra manera:
<?php
$t = date("H");
if ($t < "20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
PHP - La declaración if ... elseif ... else
La if...elseif...elsedeclaración ejecuta diferentes códigos para más de dos
condiciones.
Sintaxis
if (condition) {
code to be executed if this condition is true;
} elseif (condition) {
code to be executed if first condition is false and this condition is true;
} else {
code to be executed if all conditions are false;
}
Ejemplo
Salida "¡Buenos días!" si la hora actual es inferior a 10 y "¡Que tengas un buen
día!" si la hora actual es inferior a 20. De lo contrario, saldrá "¡Buenas noches!":
<?php
$t = date("H");
if ($t < "10") {
echo "Have a good morning!";
} elseif ($t < "20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>
Bucles
A menudo, cuando escribe código, desea que el mismo bloque de código se
ejecute una y otra vez un cierto número de veces. Entonces, en lugar de
agregar varias líneas de código casi iguales en un script, podemos usar
bucles.
Los bucles se utilizan para ejecutar el mismo bloque de código una y otra
vez, siempre que una determinada condición sea verdadera.
En PHP, tenemos los siguientes tipos de bucles:
• while - recorre un bloque de código siempre que la condición
especificada sea verdadera
• do...while - recorre un bloque de código una vez y luego repite el
ciclo siempre que la condición especificada sea verdadera
• for - recorre un bloque de código un número específico de veces
• foreach - recorre un bloque de código para cada elemento en una
matriz
PHP mientras bucle
El whilebucle: recorre un bloque de código siempre que la condición especificada
sea verdadera.
El PHP mientras bucle
El whilebucle ejecuta un bloque de código siempre que la condición especificada
sea verdadera.
Sintaxis
while (condition is true) {
code to be executed;
}
Ejemplos
El siguiente Ejemplo muestra los números del 1 al 5:
Ejemplo
<?php
$x = 1;
while($x <= 5) {
echo "The number is: $x <br>";
$x++;
}
?>
Ejemplo explicado
• $ x = 1; - Inicialice el contador de bucle ($ x) y establezca el valor de inicio
en 1
• $ x <= 5 - Continúa el ciclo siempre que $ x sea menor o igual que 5
• $ x ++; - Aumente el valor del contador del bucle en 1 para cada iteración
Este Ejemplo cuenta hasta 100 por decenas:
Ejemplo
<?php
$x = 0;
while($x <= 100) {
echo "The number is: $x <br>";
$x+=10;
}
?>
PHP hacer mientras Loo
El do...whilebucle: recorre un bloque de código una vez y luego repite el bucle
siempre que la condición especificada sea verdadera.
El PHP hace ... mientras Loop
El do...whilebucle siempre ejecutará el bloque de código una vez, luego verificará
la condición y repetirá el bucle mientras la condición especificada sea verdadera.
Sintaxis
do {
code to be executed;
} while (condition is true);
Ejemplos
El siguiente Ejemplo establece primero una variable $ x a 1 ($ x = 1). Luego, el
ciclo do while escribirá algo de salida, y luego incrementará la variable $ x con 1.
Luego se verifica la condición (¿$ x es menor o igual a 5?), Y el ciclo continuará
ejecutándose mientras $ x es menor o igual a 5:
Ejemplo
<?php
$x = 1;
do {
echo "The number is: $x <br>";
$x++;
} while ($x <= 5);
?>
PHP para bucle
El forbucle: recorre un bloque de código un número específico de veces.
El PHP para Loop
El forbucle se usa cuando sabe de antemano cuántas veces debe ejecutarse el
script.
Sintaxis
for (init counter; test counter; increment counter) {
code to be executed for each iteration;
}
Parámetros:
• contador de inicio : inicializa el valor del contador de bucle
• contador de prueba : evaluado para cada iteración del bucle. Si se evalúa
como VERDADERO, el ciclo continúa. Si se evalúa como FALSO, el ciclo
termina.
• contador de incremento : aumenta el valor del contador de bucle
Ejemplos
El siguiente Ejemplo muestra los números del 0 al 10:
Ejemplo
<?php
for ($x = 0; $x <= 10; $x++) {
echo "The number is: $x <br>";
}
?>
PHP foreach Loop
El foreachbucle: recorre un bloque de código para cada elemento de una matriz.
El bucle foreach de PHP
El foreachbucle solo funciona en matrices y se usa para recorrer cada par clave /
valor en una matriz.
Sintaxis
foreach ($array as $value) {
code to be executed;
}
Para cada iteración de bucle, el valor del elemento de matriz actual se asigna a $
value y el puntero de matriz se mueve en uno, hasta que alcanza el último
elemento de matriz.
Ejemplos
El siguiente Ejemplo generará los valores de la matriz dada ($ colores):
Ejemplo
<?php
$colors = array("red", "green", "blue", "yellow");
foreach ($colors as $value) {
echo "$value <br>";
}
?>
Funciones
El verdadero poder de PHP proviene de sus funciones.
PHP tiene más de 1000 funciones integradas, y además puede crear sus propias
funciones personalizadas.
Funciones incorporadas de PHP
PHP tiene más de 1000 funciones integradas a las que se puede llamar
directamente, desde un script, para realizar una tarea específica.
Consulte nuestra referencia de PHP para obtener una descripción completa de
las funciones integradas de PHP .
Funciones definidas por el usuario PHP
Además de las funciones integradas de PHP, es posible crear sus propias
funciones.
• Una función es un bloque de declaraciones que se pueden usar
repetidamente en un programa.
• Una función no se ejecutará automáticamente cuando se carga una página.
• Una función se ejecutará mediante una llamada a la función.
Crear una función definida por el usuario en PHP
Una declaración de función definida por el usuario comienza con la
palabra function:
Sintaxis
function functionName() {
code to be executed;
}
Nota: El nombre de una función debe comenzar con una letra o un guión bajo. Los
nombres de funciones NO distinguen entre mayúsculas y minú[Link] el
siguiente Ejemplo, creamos una función llamada "writeMsg ()". La llave de
apertura ({) indica el comienzo del código de función, y la llave de cierre (}) indica
el final de la función. La función emite "¡Hola, mundo!". Para llamar a la función,
simplemente escriba su nombre seguido de corchetes ():
Ejemplo
<?php
function writeMsg() {
echo "Hello world!";
}
writeMsg(); // call the function
?>
Matrices
Una matriz almacena múltiples valores en una sola variable:
Ejemplo
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
¿Qué es una matriz?
Una matriz es una variable especial, que puede contener más de un valor a la vez.
Si tiene una lista de elementos (una lista de nombres de automóviles, por
Ejemplo), el almacenamiento de los automóviles en variables individuales podría
verse así:
$cars1 = "Volvo";
$cars2 = "BMW";
$cars3 = "Toyota";
Sin embargo, ¿qué pasa si quieres recorrer los autos y encontrar uno
específico? ¿Y si no tuvieras 3 autos, sino 300?
Crear una matriz en PHP
En PHP, la array()función se usa para crear una matriz:
array();
En PHP, hay tres tipos de matrices:
• Matrices indexadas : matrices con un índice numérico
• Matrices asociativas : matrices con claves con nombre
• Matrices multidimensionales : matrices que contienen una o más matrices
Obtener la longitud de una matriz: la función count ()
La count()función se usa para devolver la longitud (el número de elementos) de
una matriz:
Ejemplo
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo count($cars);
?>
Matrices indexadas de PHP
Hay dos formas de crear matrices indexadas:
El índice se puede asignar automáticamente (el índice siempre comienza en 0),
así:
$cars = array("Volvo", "BMW", "Toyota");
o el índice se puede asignar manualmente:
$cars[0] = "Volvo";
$cars[1] = "BMW";
$cars[2] = "Toyota";
El siguiente Ejemplo crea una matriz indexada llamada $ cars, le asigna tres
elementos y luego imprime un texto que contiene los valores de la matriz:
Ejemplo
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
Matrices asociativas de PHP
Las matrices asociativas son matrices que usan claves con nombre que usted les
asigna.
Hay dos formas de crear una matriz asociativa:
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
o:
$age['Peter'] = "35";
$age['Ben'] = "37";
$age['Joe'] = "43";
Las teclas con nombre se pueden usar en un script:
Ejemplo
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
Recorrer una matriz asociativa
Para recorrer e imprimir todos los valores de una matriz asociativa, puede usar
un foreachciclo, como este:
Ejemplo
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
foreach($age as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
PHP - Matrices multidimensionales
Una matriz multidimensional es una matriz que contiene una o más matrices.
PHP admite matrices multidimensionales que tienen dos, tres, cuatro, cinco o más
niveles de profundidad. Sin embargo, las matrices de más de tres niveles de
profundidad son difíciles de administrar para la mayoría de las personas.
La dimensión de una matriz indica la cantidad de índices que necesita para
seleccionar un elemento.
• Para una matriz bidimensional, necesita dos índices para seleccionar un
elemento
• Para una matriz tridimensional, necesita tres índices para seleccionar un
elemento
PHP - Matrices bidimensionales
Una matriz bidimensional es una matriz de matrices (una matriz tridimensional es
una matriz de matrices de matrices).
Primero, eche un vistazo a la siguiente tabla:
Name Stock Sold
Volvo 22 18
BMW 15 13
Saab 5 2
Land Rover 17 15
Podemos almacenar los datos de la tabla anterior en una matriz bidimen sional,
como esta:
$cars = array (
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
Ahora la matriz bidimensional $ cars contiene cuatro matrices, y tiene dos índices:
fila y columna.
Para obtener acceso a los elementos de la matriz $ cars debemos señalar los dos
índices (fila y columna):
Ejemplo
<?php
echo $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".<br>";
echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".<br>";
echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".<br>";
echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".<br>";
?>
PHP - Funciones de ordenación para matrices
En este capítulo, veremos las siguientes funciones de ordenación de matriz PHP:
• sort() - ordenar matrices en orden ascendente
• rsort() - ordenar matrices en orden descendente
• asort() - ordenar matrices asociativas en orden ascendente, de acuerdo con
el valor
• ksort() - ordenar matrices asociativas en orden ascendente, de acuerdo con
la clave
• arsort() - ordenar matrices asociativas en orden descendente, de acuerdo
con el valor
• krsort() - ordenar matrices asociativas en orden descendente, de acuerdo
con la clave
Ordenar matriz en orden ascendente - sort ()
El siguiente Ejemplo clasifica los elementos de la matriz $ cars en orden alfabético
ascendente:
Ejemplo
<?php
$cars = array("Volvo", "BMW", "Toyota");
sort($cars);
?>
Manejo de formularios
Las superglobales PHP $ _GET y $ _POST se utilizan para recopilar datos de
formulario.
PHP: un formulario HTML simple
El siguiente Ejemplo muestra un formulario HTML simple con dos campos de
entrada y un botón de envío:
Ejemplo
<html>
<body>
<form action="[Link]" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Cuando el usuario completa el formulario de arriba y hace clic en el botón Enviar,
los datos del formulario se envían para su procesamiento a un archivo PHP
llamado "[Link]". Los datos del formulario se envían con el método HTTP
POST.
Para mostrar los datos enviados, simplemente puede hacer eco de todas las
variables. El "[Link]" se ve así:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
El resultado podría ser algo como esto:
Welcome John
Your email address is [Link]@[Link]
El mismo resultado también podría lograrse utilizando el método HTTP GET:
Ejemplo
<html>
<body>
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
y "welcome_get.php" se ve así:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
El código anterior es bastante simple. Sin embargo, falta lo más importante. Debe
validar los datos del formulario para proteger su secuencia de comandos del
código malicioso.
¡Piense en SEGURIDAD al procesar formularios PHP!
Esta página no contiene ninguna validación de formulario, solo muestra cómo
puede enviar y recuperar datos de formulario.
Sin embargo, las siguientes páginas mostrarán cómo procesar formularios PHP
teniendo en cuenta la seguridad. ¡La validación adecuada de los datos del
formulario es importante para proteger su formulario de hackers y spammers!
OBTENER vs. POSTAR
Tanto GET como POST crean una matriz (por Ejemplo, matriz (clave1 => valor1,
clave2 => valor2, clave3 => valor3, ...)). Esta matriz contiene pares clave / valor,
donde las claves son los nombres de los controles del formulario y los valores son
los datos de entrada del usuario.
Tanto GET como POST se tratan como $ _GET y $ _POST. Estos son
superglobales, lo que significa que siempre son accesibles, independientemente
del alcance, y puede acceder a ellos desde cualquier función, clase o archivo sin
tener que hacer nada especial.
$ _GET es una matriz de variables pasadas al script actual a través de los
parámetros de URL.
$ _POST es una matriz de variables pasadas al script actual a través del método
HTTP POST.
¿Cuándo usar GET?
La información enviada desde un formulario con el método GET es visible para
todos (todos los nombres y valores de las variables se muestran en la URL). GET
también tiene límites en la cantidad de información a enviar. La limitación es de
aproximadamente 2000 caracteres. Sin embargo, debido a que las variables se
muestran en la URL, es posible marcar la página. Esto puede ser útil en algunos
casos.
GET puede usarse para enviar datos no confidenciales.
¿Cuándo usar POST?
La información enviada desde un formulario con el método POST es invisible
para otros (todos los nombres / valores están in crustados dentro del cuerpo de la
solicitud HTTP) y no tiene límites en la cantidad de información a enviar.
Además, POST admite funcionalidades avanzadas, como la compatibilidad con
entradas binarias de varias partes al cargar archivos al servidor.
Sin embargo, debido a que las variables no se muestran en la URL, no es posible
marcar la página.
Validación de formularios
Este y los siguientes capítulos muestran cómo usar PHP para validar los datos del
formulario.
Validación de formulario PHP
¡Piense en SEGURIDAD al procesar formularios PHP!
Estas páginas mostrarán cómo procesar formularios PHP teniendo en cuenta la
seguridad. ¡La validación adecuada de los datos del formulario es importante para
proteger su formulario de hackers y spammers!
El formulario HTML en el que trabajaremos en estos capítulos contiene varios
campos de entrada: campos de texto obligatorios y opcionales, botones de opción
y un botón de envío:
Campos de texto
Los campos de nombre, correo electrónico y sitio web son elementos de entrada
de texto, y el campo de comentarios es un área de texto. El código HTML se ve
así:
Name: <input type="text" name="name">
E-mail: <input type="text" name="email">
Website: <input type="text" name="website">
Comment: <textarea name="comment" rows="5" cols="40"></textarea>
Botones de radio
Los campos de género son botones de opción y el código HTML se ve así:
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<input type="radio" name="gender" value="other">Other
El elemento de formulario
El código HTML del formulario se ve así:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SE
LF"]);?>">
Cuando se envía el formulario, los datos del formulario se envían con method =
"post".
¿Qué es la variable $ _SERVER ["PHP_SELF"]?
$ _SERVER ["PHP_SELF"] es una variable súper global que devuelve el nombre
de archivo del script que se está ejecutando actu almente.
Entonces, $ _SERVER ["PHP_SELF"] envía los datos del formulario enviado a la
página en lugar de saltar a una página diferente. De esta forma, el usuario recibirá
mensajes de error en la misma página que el formulario.
¿Qué es la función htmlspecialchars ()?
La función htmlspecialchars () convierte caracteres especiales en entidades
HTML. Esto significa que reemplazará los caracteres HTML como <y> con & lt; y &
gt ;. Esto evita que los atacantes exploten el código inyectando código HTML o
Javascript (ataques de secuencias de comandos entre sitios) en formularios.
Gran nota sobre seguridad de formularios PHP
Los hackers pueden usar la variable $ _SERVER ["PHP_SELF"].
Si se usa PHP_SELF en su página, un usuario puede ingresar una barra diagonal
(/) y luego algunos comandos Cross Site Scripting (XSS) para ejecutar.
Las secuencias de comandos entre sitios (XSS) son un tipo de
vulnerabilidad de seguridad informática que generalmente se encuentra en
las aplicaciones web. XSS permite a los atacantes inyectar secuencias de
comandos del lado del cliente en páginas web vistas por otros usuarios.
Supongamos que tenemos el siguiente formulario en una página llamada
"test_form.php":
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
Ahora, si un usuario ingresa la URL normal en la barra de direcciones como
"[Link] el código anterior se traducirá a:
<form method="post" action="test_form.php">
Hasta aquí todo bien.
Sin embargo, considere que un usuario ingresa la siguiente URL en la barra de
direcciones:
[Link]
/script%3E
En este caso, el código anterior se traducirá a:
<form method="post" action="test_form.php/"><script>alert('hacked')</script>
Este código agrega una etiqueta de script y un comando de alerta. Y cuando se
carga la página, se ejecutará el código JavaScript (el usuario verá un cuadro de
alerta). Este es solo un Ejemplo simple e inofensivo de cómo se puede explotar la
variable PHP_SELF.
¡Tenga en cuenta que cualquier código JavaScript se puede agregar dentro de
la etiqueta <script>! Un pirata informático puede redirigir al usuario a un archivo
en otro servidor, y ese archivo puede contener código malicioso que puede alterar
las variables globales o enviar el formulario a otra dirección para guardar los datos
del usuario, por Ejemplo.
¿Cómo evitar exploits $ _SERVER ["PHP_SELF"]?
Las vulnerabilidades de $ _SERVER ["PHP_SELF"] se pueden evitar utilizando la
función htmlspecialchars ().
El código del formulario debería verse así:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SE
LF"]);?>">
La función htmlspecialchars () convierte caracteres especiales en entidades
HTML. Ahora, si el usuario intenta explotar la variable PHP_SELF, dará como
resultado la siguiente salida:
<form method="post" action="test_form.php/"><script>alert('hacked')
</script>">
¡El intento de explotación falla y no se hace daño!
Validar datos de formulario con PHP
Lo primero que haremos es pasar todas las variables a través de la función
htmlspecialchars () de PHP.
Cuando usamos la función htmlspecialchars (); entonces, si un usuario intenta
enviar lo siguiente en un campo de texto:
<script> [Link] ('[Link] </script>
- esto no se ejecutaría, porque se guardaría como código escapado HTML, como
este:
& lt; script & gt; [Link] ('[Link] & lt; / script & gt;
Ahora es seguro que el código se muestre en una página o dentro de un correo
electrónico.
También haremos dos cosas más cuando el usuario envíe el formulario:
1. Elimine los caracteres innecesarios (espacio adicional, tabulación, nueva
línea) de los datos de entrada del usuario (con la función de recorte de
PHP)
2. Elimine las barras invertidas (\) de los datos de entrada del usuario (con la
función PHP stripslashes ())
El siguiente paso es crear una función que verifique por nosotros (lo cual es
mucho más conveniente que escribir el mismo código una y otra vez).
Llamaremos a la función test_input ().
Ahora, podemos verificar cada variable $ _POST con la función test_input (), y el
script se ve así:
Ejemplo
<?php
// define variables and set to empty values
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$website = test_input($_POST["website"]);
$comment = test_input($_POST["comment"]);
$gender = test_input($_POST["gender"]);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
Observe que al comienzo del script, verificamos si el formulario se ha enviado
utilizando $ _SERVER ["REQUEST_METHOD"]. Si REQUEST_METHOD es
POST, el formulario se ha enviado y debe validarse. Si no se ha enviado, omita la
validación y muestre un formulario en blanco.
Sin embargo, en el Ejemplo anterior, todos los campos de entrada son
opcionales. El script funciona bien incluso si el usuario no ingresa ningún dato.
El siguiente paso es hacer que los campos de entrada sean obligatorios y crear
mensajes de error si es necesario.