Funciones predefinidas#

Logo PHP

Funciones más usadas en PHP 7.4

Información del servidor#

En un archivo vacío se guarda la siguiente función:

1<?php
2    phpinfo();
3?>

Manipulación de variables#

Averiguar tipo de dato#

1<?php
2    $cadena = "Soy una cadena de texto";
3
4    echo gettype($cadena);
5?>

Validación#

 1<?php
 2    // variable definida:
 3    $gatos = "";
 4
 5    // guarda el valor 1 (true) si ha sido definida la variable:
 6    $definida = isset($gatos);
 7    echo $definida;
 8
 9    echo "<br>";
10
11    // uso como validador:
12    $comprobar = isset($gatos) ? "Existen gatos en el código" : "No existen gatos en el código";
13    echo $comprobar;
14?>

Destrucción#

1<?php
2    $gatos = "";
3
4    // destruir la variable gatos:
5    unset($gatos);
6
7    $comprobar = isset($gatos) ? "Existen gatos en el código" : "No existen gatos en el código";
8    echo $comprobar;
9?>

Manipulación de Strings#

Longitud de un String#

1<?php
2    $consola = "Nintendo DS";
3    echo strlen($consola);
4?>

Conversión a String#

1<?php
2    $lanzamiento = 2005;
3    $fechaLanzamiento = "Lanzamiento en " . (String)$lanzamiento;
4    echo $fechaLanzamiento
5?>

Conversión String a Array#

1<?php
2    $string_consolas = "Nintendo DS, Nintendo 64, Super Nintendo";
3    $array_consolas = explode(", ", $string_consolas);
4    var_dump($array_consolas);
5?>

Reemplazar palabras#

1<?php
2    $descripcion = "La Nintendo Mega Drive es la mejor consola de Nintendo hasta la fecha";
3    echo str_replace("Nintendo", "Sega", $descripcion);
4?>

Primera letra mayúscula#

 1<?php
 2    $descripcion = "La Nintendo Mega Drive es la mejor consola de Nintendo hasta la fecha";
 3
 4    // Primera palabra con letra mayúscula:
 5    echo ucfirst($descripcion);
 6    echo "<br>";
 7
 8    // todas las palabras con letra mayúscula:
 9    echo ucwords($descripcion);
10?>

Conversión a mayúsculas#

1<?php
2    $descripcion = strtoupper("La Nintendo Mega Drive es la mejor consola de Nintendo hasta la fecha");
3    echo $descripcion;
4?>

Conversión a minúsculas#

1<?php
2    $descripcion = "La Nintendo Mega Drive es la mejor consola de Nintendo hasta la fecha";
3    echo strtolower($descripcion);
4?>

Eliminar espacios en blanco a los lados#

1<?php
2    $texto = "   soy un texto con espacios   ";
3    echo trim($texto);
4?>

Localizar posición de caracteres en cadena#

1<?php
2    $frase = "En esta frase se esconde el nombre Pepe";
3
4    if(strpos($frase, "Pepe") == true){
5        echo "Hemos encontrado a Pepe!";
6    }
7?>

Manipulación de Números#

Conversión String a Integer#

1<?php
2    $numeroCadena = "173";
3    $suma = (int)$numeroCadena + 50;
4    echo "el resultado es: " . $suma;
5?>

Conversión String a Float#

1<?php
2    $numeroCadena = "17.27";
3    $suma = (float)$numeroCadena + 50;
4    echo "el resultado es: " . $suma;
5?>

Redondeo de decimales#

 1<?php
 2    $numeroDecimal = 23.783728;
 3
 4    // Redondeo a entero:
 5    echo round($numeroDecimal);
 6
 7    echo "<br>";
 8
 9    // Redondeo a decimal:
10    echo round($numeroDecimal, 4); // segundo parámetro define cantidad de dígitos a devolver
11?>

Manipulación de Arrays#

Imprimir contenido#

 1<?php
 2    $fabricantes = ["Nintendo", "Sega", "Sony", "Microsoft"];
 3
 4    // Imprimir contenido de una variable y el formato:
 5    var_dump($fabricantes);
 6
 7    // Imprimir con un formato más legible:
 8    echo "<pre>";
 9    print_r($fabricantes);
10    echo "</pre>";
11?>

Añadir elemento al array#

 1<?php
 2    // tenemos un array:
 3    $consolasSony = ["PlayStation", "PlayStation 2", "PlayStation 3"];
 4
 5    print_r($consolasSony);
 6
 7    // utilizamos la siguiente función en la cual el primer parámetro es el array anterior y los siguientes los elementos que se añaden:
 8    array_push($consolasSony, "PlayStation 4", "PlayStation 5");
 9
10    print_r($consolasSony);
11?>

Rango de números#

 1<?php
 2    // guardar un rango de números:
 3    $rango = range(0, 20);
 4    var_dump($rango);
 5
 6    // uso en bucles:
 7    foreach(range(0, 10) as $numero){
 8        echo $numero . "<br />";
 9    }
10?>

Recuperar valor máximo#

1<?php
2    $fechas = [1932, 1930, 1959, 1092, 1209];
3
4    echo "El año mas reciente es: " . max($fechas);
5?>

Recuperar valor mínimo#

1<?php
2    $fechas = [1932, 1930, 1959, 1092, 1209];
3
4    echo "El año mas antiguo es: " . min($fechas);
5?>

Suma total de todos los valores#

1<?php
2    $carro = [20.85, 10.40, 19.94, 12, 9];
3
4    echo "El total de la compra es: " . array_sum($carro) . "€";
5?>

Manipulación JSON#

Convertir Array en JSON#

 1<?php
 2    // Array a convertir:
 3    $videoconsolas = array(
 4        "megadrive" => [
 5            "lanzamiento" => 1988,
 6            "fabricante" => "Sega"
 7        ],
 8        "snes" => [
 9            "lanzamiento" => 1990,
10            "fabricante" => "Nintendo"
11        ],
12        "playstation" => [
13            "lanzamiento" => 1994,
14            "fabricante" => "Sony"
15        ]
16    );
17
18    // Imprmir array codificado en formato JSON:
19    echo json_encode($videoconsolas);
20?>

Convertir JSON en Array#

 1<?php
 2    // Se realiza una llamada con CURL:
 3    $curl = curl_init("http://api.plos.org/search?q=title:DNA");
 4    // La siguiente función prepara el formato de almacenamiento en String:
 5    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
 6    // Se ejecuta la operación y se guarda en una variable::
 7    $response = curl_exec($curl);
 8    // Pasamos a la codificación en JSON:
 9    $data = json_decode($response);
10    // Validar la salida desde metadatos:
11    $info = curl_getinfo($curl);
12
13
14
15    // Se ejecuta la respuesta si el resultado es correcto:
16    if($info['http_code'] == 200 ){
17        // ver el contenido de la variable:
18        echo "<pre>";
19        print_r($data);
20        echo "</pre>";
21    }else{
22        echo "Error", curl_error($curl);
23    }
24
25?>

Atención

Para poder trabajar con curl hay que instalar la dependencia sudo apt install php7.4-curl

Manipulación de fechas#

1<?php
2    // devolver un valor:
3    echo "Hoy es día " . date('d') . " de " . date('m') . " de " . date('Y');
4
5    echo "<br>";
6    // devolver fecha formateada:
7    echo "Son las: " . date('H:m');
8?>
  • Códigos comunes para Fecha:

Tipo de valor

símbolo

Día en notación numeral

d

Día por inicial

D

Día de la semana

l

Dias transcurridos desde comienzos de año

z

Dias que tiene el mes corriente

t

Semanas transcurridas desde comienzos de año

W

Mes actual en notación numeral

m

Mes actual en notación numeral sin cero

n

Iniciales del mes corriente

M

Año corriente en notación numeral

Y

Año con notación numeral abreviada

y

Año bisiesto (devuelve 1 si es bisiesto)

L

Fecha en formato ISO-8601

c

  • Códigos comunes para Hora:

Tipo de valor

símbolo

Ver si la hora es AM o PM

a

Ver si la hora es AM o PM en mayúsculas

A

Hora en formato 12

g

Hora en formato 24

G

Hora en formato 12 con 0 inicial

h

Hora en formato 24 con 0 inicial

H

Minutos

i

Segundos

s

Microsegundos

u

Zona Horaria

e

Horario de sol reducido

I

Desfase meridiano de Greenwitch

O

Hora formato Swatch Internet Time

B

Hora formato UNIX

U

Atención

Los valores textualizados de las fechas están en inglés

Tratamiento de archivos#

Recuperar contenido de archivo#

1<?php
2    $foto = file_get_contents('foto.jpg');
3    echo $foto;
4?>

Manipulación de archivos#

  • Escritura de archivos:

 1<?php
 2    $ip = $_SERVER['REMOTE_ADDR'];
 3    $navegador = $_SERVER['HTTP_USER_AGENT'];
 4    $contenido = date('U') . " - Fecha: " . date('Y/m/d - H:i:s') . " - Navegador: " . $navegador . " - IP: " . $ip ."\n";
 5
 6    // establecemos el nombre de archivo que vamos a editar:
 7    $archivoLogs = 'logs.dat';
 8    // abrimos con permisos de creación extras:
 9    $manejador = fopen($archivoLogs, 'w+');
10    // escribimos los cambios:
11    fwrite($manejador,$contenido);
12?>
  • Lectura de archivos:

 1<?php
 2    $archivoLogs = 'logs.dat';
 3    // abrimos el archivo con permisos de lectura:
 4    $manejador = fopen($archivoLogs, 'r');
 5
 6    // establecemos la condición con fgetcsv() de manera que los dividirá:
 7    while($datos = fgetcsv($manejador,1000000, "-")){
 8        echo "<pre>";
 9        print_r($datos);
10        echo "</pre>";
11    }
12    fclose($manejador);
13?>
  • Actualización de archivos:

 1<?php
 2    $ip = $_SERVER['REMOTE_ADDR'];
 3    $navegador = $_SERVER['HTTP_USER_AGENT'];
 4    $contenido = date('U') . " - Fecha: " . date('Y/m/d - H:i:s') . " - Navegador: " . $navegador . " - IP: " . $ip ."\n";
 5
 6    // establecemos el nombre de archivo que vamos a editar:
 7    $archivoLogs = 'logs.dat';
 8    // abrimos con permisos de actualizacion extras:
 9    $manejador = fopen($archivoLogs, 'a+');
10    // escribimos los cambios:
11    fwrite($manejador,$contenido);
12?>

Manipulación de cabeceras#

Redirección#

1<?php
2    header('Location: https://www.prueba.com');
3?>

Modificar el comportamiento de un script#

1<?php
2    // indica al navegador que el script php es una imagen.
3    header('Content-type: image/jpg');
4
5    $foto = file_get_contents('foto.jpg');
6    echo $foto;
7?>

Descargar un archivo desde un script#

1<?php
2    header('Content-type: image/jpg');
3    // se define la disposición y el nombre que tendrá al ser descargado:
4    header('Content-disposition: attachment; filename="descarga.jpg"');
5
6    $foto = file_get_contents('foto.jpg');
7?>

Tratamiento de CORS#

 1<?php
 2    // Origen: *: todos | www.codigo.com: una url | null: bloquea cualquier origen excepto el mismo servidor:
 3    header('Access-Control-Allow-Origin: *');
 4    // Cabeceras permitidas separadas por comas:
 5    header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method");
 6    // Métodos permitidos separados por comas:
 7    header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
 8
 9    echo "<h1>Sitio de prueba</h1>";
10?>