PHP: imprescindible para crear páginas web de modo profesional
Y ahora tambien aprende a programar en C++ con Aprende Web C++
y entérate de las novedades o deja un comentario.
última modificación: 13-07-2018.
Visitas este mes: 40
Visitas el mes pasado: 60
Mi agradecimiento a los siguientes sitios en los que me he basado para la elaboración de este manual.:
Por elegir aprende-web
Aprende-web está diseñado a partir de los lenguajes que aquà mismo se enseñan.
By Anyelguti
Las funciones matemáticas nos permiten hacer variaciones y operaciones con los números. Aunque tenemos los operadores que permiten hacer operaciones, hay otra serie de operaciones más complejas que haremos mediante estas funciones.
Estas son una serie de números especiales usados por los matemáticos (PI, e, constante de Euler, etc.). En PHP accedemos a ellos mediante una serie de constantes, las constantes matemáticas.
Constante | valor | Descripción |
---|---|---|
M_PI | 3.1415926535898 | Número pi, relación circunferencia/diámetro. |
M_E | 2.718281828459 | Número e, base de logaritmos naturales. |
M_EULER | 0.57721566490153 | Constante de Euler. |
M_SQRT2 | 1.4142135623731 | Raíz cuadrada de 2. |
M_SQRT3 | 1.7320508075689 | Raíz cuadrada de 3. |
M_SQRTPI | 1.7724538509055 | Raíz cuadrada del número pi. |
M_LOG2E | 1.442695040889 | Logaritmo en base 2 del número e. |
M_LOG10E | 0.43429448190325 | Logaritmo en base 10 del número e. |
M_LN2 | 0.69314718055995 | Logaritmo neperiano (base e) de 2. |
M_LN10 | 2.302585092994 | Logaritmo neperiano (base e) de 10. |
Estas funciones permiten hacer ciertas operaciones algo más complejas que las que nos permiten los operadores.
Nombre | Código y explicación |
---|---|
pow() | $pot = pow($base,$exp); |
Potenciación: Eleva el número indicado en $base (base de la potencia), al número indicado en $exp (exponente).
| |
sqrt() | $raiz2 = sqrt($num); |
Raíz cuadrada: calcula la raíz cuadrada del número pasado como argumento. | |
log() | $log = log($num,$base); |
Logaritmo: Devuelve el resultado del logaritmo para $num (1º argumento). El 2º argumento es opcional,
e indica la base del logaritmo. Si no se especifica el logaritmo será en base e (logaritmo natural).
| |
log10() | $log10 = log10($num); |
Logaritmo en base 10: Devuelve el resultado del logaritmo en base 10 para el argumento pasado. | |
decbin() | $bin = decbin($num); |
Conversión a binario: Convierte el número pasado en el argumento en número binario (en base 2). | |
bindec() | $dec = bindec($num); |
Conversión a decimal: Función contraria a la anterior. Le pasamos un número binario en el argumento y lo convierte a decimal. | |
decoct() | $oct = decoct($num); |
Conversión a octal: Convierte el número pasado en el argumento en número octal (en base 8). | |
dechex() | $hex = dechex($num); |
Conversión a hexadecimal: Convierte el número pasado en el argumento en número hexadecimal (en base 16). | |
base_convert() | $num2 = base_convert($num,$base1,$base2); |
Conversión de una base a otra: Convierte el $num (1º argumento), e una base a otra. La
$base1 (2º argumento) indica la base inicial en la que esta $num , y $base2
es la bse a la que se convierte. Las bases deben ser números entre el 2 y el 36 (ambos inclusive). En bases mayores de 10
se usarán las letras minúsculas del alfabeto.
| |
max() | $maximo = max($array); |
Máximo valor: Devuelve el valor más alto de todos los que se le pasan en una lista, ésta puede estar en forma de array o pasar los números directamente como varios argumentos. | |
min() | $minimo = min($array); |
Mínimo valor: Devuelve el valor más bajo de todos los pasados en una lista, éstos pueden pasarse en forma de array o pasarlos directamente como varios argumentos. | |
Las siguientes funciones modifican el número que se les pasa para redondearlo o mostrar su valor absoluto.
Nombre | Código y explicación |
---|---|
abs() | $num2 = abs($num); |
Valor absoluto: devuelve el valor absoluto del número pasado como argumento, siempre positivo, sin tener en cuenta el signo. | |
round() | $num2 = round($num,$precision); |
Redondeo: Redondea el $num (1º argumento) al entero más cercano.
El 2º argumento ($precision ) es opcional, e indica el número de decimales en el redondeo.
Si es negativo se redondeará a entero convirtiendo las últimas cifras en ceros.
| |
ceil() | $num2 = ceil($num); |
Redondeo al alza: Redondea el número pasado en el argumento al siguiente entero inmediatamente superior. | |
floor() | $num2 = floor($num); |
Redondeo a la baja: Redondea el número pasado en el argumento al número entero inmediatamente inferior. | |
number_format() | $num2 = number_format($num,$decimales,"sep_decimal","sep_miles") |
Formato de números: Define cómo se presentará el número en pantalla, podemos poner 1, 2, o 4 argumentos, (pero no 3). Con un argumento el número se mostrará tal cual. Con dos argumentos, el 2º indica el número de decimales que debe mostrarse. En el 3º y 4º argumento escribiremos los signos que deben mostrarse para separar los decimales (en 3º argumento) y para separar los grupos de miles (4º argumento). | |
Nombre | Código y explicación |
---|---|
rand() | $num = rand($min,$max) |
Número aleatorio: Genera un número entero aleatorio comprendido entre los números pasados
en el 1º argumento $min (mínimo) y el 2º $max (máximo).
Si no pasamos argumentos los límites estarán entre 0 y RAND_MAX (en Windows es 32768).
| |
mt_rand() | $num = mt_rand($min,$max); |
Número aleatorio: Esta función funciona exactamente igual que la anterior, pero tiene la ventaja de que genera los números 4 veces más rápido. | |
Las funciones trigonométricas son aquellas que relacionan la circunferencia con el radio, o los lados de un triángulo rectángulo con sus ángulos.
Los ángulos pueden medirse en grados o en radianes, sin embargo PHP sólo trabaja con radianes. Es por esto que ponemos también las funciones de conversión entre grados y radianes.
Nombre | Código y explicación |
---|---|
deg2rad() | $rad = deg2rad($grados); |
Conversión grados a radianes: Convierte el número pasado en el argumento a radianes. | |
rad2deg() | $grados = rad2deg($rad); |
Conversión radianes a grados: Convierte el número pasado en el argumento a grados. | |
sin() | $num = sin($rad); |
Seno: Calcula el seno del ángulo pasado en el argumento. | |
cos() | $num = cos($rad); |
Coseno: Calcula el coseno del ángulo pasado en el argumento. | |
tan() | $num = tan($rad); |
Tangente: Calcula la tangente del ángulo pasado en el argumento. | |
asin() | $rad = asin($num); |
Arco-seno: Calcula el arco-seno del número pasado en el argumento. | |
acos() | $rad = acos($num); |
Arco-coseno: Calcula el arco-coseno del número pasado en el argumento. | |
atan() | $rad = atan($num); |
Arco-tangente: Calcula el arco-tangente del número pasado en el argumento. | |
La marca de tiempo Unix
La marca de tiempo Unix o tiempo Unix es la manera que tienen los ordenadores de medir el tiempo. Esta consiste en un número que indica los segundos transcurridos desde el 1 de enero de 1970 a las 0h. 0m. 0s. hora GTM.
De esta manera a cada fecha le corresponde un número. Las fechas anteriores dan un número negativo.
time();
La función time() nos devuelve la marca de tiempo Unix de la fecha actual (en el momento de cargarse la página). Toma la hora local del ordenador del usuario. Esta función no tiene argumentos:
$fecha_actual = time();
mktime($hora,$min,$seg,$mes,$dia,$ano);
Esta función devuelve la marca de tiempo Unix para una fecha concreta. La fecha la pasamos en los argumentos de la función en el siguiente orden: hora, minuto, segundo, mes, día, año. Los argumentos se escribirán con números. La función tiene en cuenta la hora local.
gmmktime($hora,$min,$seg,$mes,$dia,$ano);
Esta función es igual que la anterior, pero nos devuelve la fecha en horario GTM (internacional o del meridiano de Greenwich).
Hasta ahora obtenemos las fechas en tiempo Unix, pero lo que nos interesa es poder mostrarla
en distintos formatos más normales. Usamos para ello la función date()
.
$fecha = date($formato,$tiempo_Unix);
En el segundo argumento pondremos el tiempo Unix de la fecha que queremos dar formato. Si no se pone este argumento se toma la fecha actual.
El primer argumento es el formato que le daremos a la fecha, este consiste en una serie de letras que indican los elementos a mostrar (día, mes, hora, etc.). Entre estas letras podemos poner otros elementos como guiones, comas, espacios en blanco, etc, que formarán parte de la fecha. Por ejemplo para la fecha actual pondremos:
echo date("d-m-Y // h:i:s");
Lo cual lo veremos así: 31-03-2023 // 01:28:34
Los distintos caracteres que podemos poner para definir los elementos de la fecha en el formato los vemos en la siguiente tabla:
Carácter | Descripción | Valores devueltos |
---|---|---|
Día | ------- | ------- |
d | Día del mes. 2 dígitos, con 0 inicial | 01 a 31 |
j | Día del mes sin 0 inicial | 1 a 31 |
Semana | ------- | ------- |
D | Día de la semana abreviado (inglés, 3 letras) | Mon a Sun |
l (ele minúscula) | Día de la semana completo (inglés) | Sunday a Saturday |
N | Número del día de la semana | 1 (lun) a 7 (dom) |
w | Número del día de la semana | 0 (dom) a 6 (sáb) |
W | Semanas transcurridas del año | 1 a 52 ó 53 |
Mes | ------- | ------- |
m | Número de mes con 0 inicial | 01 a 12 |
n | Número de mes sin 0 inicial | 1 a 12 |
F | Mes (texto en inglés) | January a December |
M | Mes abreviado. Tres letras (en inglés) | Jan a Dec |
t | Días que tiene el mes. | 28 a 31 |
año | ------- | ------- |
Y | Año en 4 dígitos | Ej.: 1990 ó 2003 |
y | Año en 2 dígitos | Ej.: 90 ó 03 |
L | Indica si el año es bisiesto | 1 (sí), 0 (no) |
Hora, min, seg. | ------- | ------- |
g | Hora de 1 a 12 con 0 inicial | 00 a 12 |
h | Hora de 1 a 12 sin 0 inicial | 1 a 12 |
G | Hora de 0 a 23 con 0 inicial | 00 a 23 |
H | Hora de 0 a 23 sin 0 inicial | 0 a 23 |
a | Ante meridiano o Post meridiano. Minúsculas. | am ó pm |
A | Ante meridiano o Post meridiano. Mayúsculas. | AM ó PM |
i | Minuto con 0 inicial | 00 a 59 |
s | Segundo con 0 inicial | 00 a 59 |
Fecha completa | ------- | ------- |
c | Fecha en formato ISO 8601 | Ej.: 2005-03-12T15:19:21+00:00 |
r | Fecha en formato RFC 2822 | Ej: Thu, 21 Dec 2000 16:01:07 +0200 |
Otros | --- | --- |
e | Identifica zona horaria | Ej.: Europe/Paris |
I (i mayúscula) | Indica si estamos en horario de verano. | 1 = sí, 0 = no |
P | Diferencia con la hora GTM (Greenwich) indica horas y minutos. | Ej: +02:00 |
Z | Diferencia con la zona horaria en segundos. | -43200 a 43200 |
U | Tiempo Unix de la fecha dada | igual que en mktime() |
En el formato anterior se nos muestran los días de la semana y los meses en inglés. Sin embargo nosotros queremos mostrar la fecha en nuestro idioma local. Para ello utilizamos en principio la siguiente función para indicar cuál es la información que debe tratarse en idioma local:
setlocale($categoría,$localización);
En el primer argumento se indica el tipo de información que debe tratarse de forma local. Para la fecha pondremos: CL_Time.
En el segundo argumento pondremos en una cadena el código del país o región. Si se pone una cadena vacía. "" se utilizará el código del país donde esté el servidor:
setlocale(CL_Time,"");
Esta función afecta también a las demás páginas del sitio, por lo que las demás páginas se verán afectadas también por esta función.
El problema está cuando el servidor donde tenemos la página está alojado en otro país. En ese caso debemos definir el código del país o región donde estamos. Este código puede ser diferente en distintos servidores, por lo que lo mejor es poner una lista de los posibles códigos separados por comas. Para España la función se definirá así:
setlocale(LC_TIME,"esp,sp,spa,es,spanish");
Además es posible que nuestro servidor tenga diferente zona horaria que nosotros, por lo que utilizaremos esta función para ponerla en horario español:
date_default_timezone_set("Europe/Madrid");
En el argumento pondremos la zona horaria de donde estamos.
Si estamos en otro país que no sea España, podemos consultar la lista de códigos de países en la página http://www.loc.gov/standards/iso639-2/php/code_list.php.
También podemos consultar la lista de zonas horarias en http://es.php.net/timezones
Después utilizaremos la siguiente función para mostrar la fecha en formato local:
strftime($formato,$tiempo_Unix);
La función es similar a date()
por lo que como 2º argumento pondremos el tiempo Unix de la fecha. Si no lo
ponemos nos dará la fecha actual.
El primer argumento indica el formato, que se escribe de forma parecida a date()
, sólo que los elementos
son diferentes. Estos son los siguientes.
Carácter | Descripción | Valores devueltos |
---|---|---|
Día | -------- | -------- |
%d | Día del mes con 0 inicial | 01 a 31 | %e %#d en windows |
Día del mes sin 0 inicial. | 1 a 31 |
Semana | -------- | -------- |
%A | Día completo de la semana. | Lunes a domingo |
%a | Dia abreviado de la semana | lun a dom |
%w | Día de la semana en número. | 0 (Domingo) a 6 (Lunes) |
%U | Semana del año: la semana empieza en domingo. | 1 a 53 |
%W | Semana del año: la semana empieza en lunes. | 1 a 53 |
Mes | -------- | -------- |
%B | Nombre completo del mes. | Enero a Diciembre |
%b | Nombre abreviado del mes. | ene a dic |
%m | Mes en número con 0 inicial. | 01 a 12 | Año | -------- | -------- |
%C | Dos primeros dígitos del año | Ej.: 20 (para 2010) |
%y | Dos últimos dígitos del año. | 13 (para 2013) |
%Y | Año completo con lo cuatro dígitos. | 2010 |
Hora min. y seg. | -------- | -------- |
%H | Hora en formato 00 a 23. | 00 a 23 | %k | Hora en formato 0 a 23. (un dígito para menor de 10) | 0 a 23 |
%I | Hora en formato 01 a 12. | 01 a 12 |
%l ("L" minúscula) | Hora en formato 1 a 12. | 1 a 12 |
%M | Minuto en formato 00 a 59. | 00 a 59 |
%S | Segundo en formato 00 a 59. | 00 a 59 |
Otros | -------- | -------- |
%x | Fecha preferida, sin la hora. | ej: como "%d/%m/%Y" |
%X | Hora preferida, sin la fecha. | ej: como "%H:%M:%S" |
%c | Fecha y hora completa, preferida. | ej: "%d/%m/%Y H:%M:%S" |
%Z | Zona horaria local. | Ej: Europe/Madrid. |
Las siguientes funciones fuerzan a la variable pasada en el argumento a cambiar de tipo de variable.
Nombre | Código y explicación |
---|---|
floatval() | $var2 = floatval($var); |
Devuelve la variable pasada como argumento transformada en número real. | |
intval() | $var2 = intval($var); |
Devuelve la variable pasada como argumento transformada en número entero. | |
strval() | $var2 = strval($var); |
Devuelve la variable pasada como argumento transformada en cadena de texto. | |
settype() | $vr2 = settype($var,"tipo") |
Devuelve la variable pasada en el 1º argumento transformada al tipo indicado en el
2º argumento. Los valores admitidos en el 2º argumento son los siguientes:
"integer", "double", "string", "array", "object" .
| |
Las siguientes funciones comprueban si la variable es del tipo indicado:
Nombre | Código y explicación |
---|---|
is_int() | $respuesta = is_int($var); |
Comprueba si la variable pasada en el argumento es un número entero. Devuelve
verdadero (1 ) o falso ("" );
| |
is_float() | $respuesta = is_float($var); |
Comprueba si la variable pasada en el argumento es un número real. Devuelve
verdadero (1 ) o falso ("" );
| |
is_string() | $respuesta = is_string($var); |
Comprueba si la variable pasada en el argumento es una cadena de texto. Devuelve
verdadero (1 ) o falso ("" );
| |
is_array() | $respuesta = is_array($var); |
Comprueba si la variable pasada en el argumento es un array. Devuelve
verdadero (1 ) o falso ("" );
| |
is_object() | $respuesta = is_object($var); |
Comprueba si la variable pasada en el argumento es un objeto. Devuelve
verdadero (1 ) o falso ("" );
| |
gettype(); | $respuesta = gettype($var); |
Dependiendo del tipo de variable que pasamos en el argumento devuelve una de las siguientes
cadenas de texto: "integer" (entero), "double" (decimal), "string" (cadena),
"array" (array), "object" (objeto), "unknown type" (tipo desconocido)
| |
isset()
$respuesta = isset($var);
Comprueba si la variable existe. Si es así devuelve verdadero (1), y si no devuelve falso ("");
unset()
unset($var);
Elimina la variable pasada en el argumento.
Esta función convierte el valor de una variable en código PHP. Normalmente son variables de cadena donde se guarda el código. Ejemplo:
$a="echo 'hola mundo';";eval($a);
Si queremos que cuando el usuario entre en una página, esta nos redireccione a otra utilizaremos la siguiente función:
header("Location:ruta_página");
En donde ruta_pagina será la dirección a donde se redirecciona. El script donde esté esta función debemos ponerlo al principio de la página, incluso antes que la etiqueta !DOCTYPE.
A veces puede interesarnos obtener los datos del servidor donde estamos alojados. Lo hacemos mediante el siguiente array interno de PHP:
$_SERVER['HTTP_HOST']; : devuelve el dominio actual
$_SERVER['SERVER_PORT']; : devuelve el puerto actual
$_SERVER['REQUEST_URI']; : devuelve la uri actual
En el siguiente tema veremos cómo podemos utilizar las variables en ditintas páginas de un mismo sitio.
Sugerencias:
aprendeweb@aprende-web.net. Envia un
Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog
Más sobre anyelguti en http://anyelguti.16mb.com