PROGRAMACION
SEMANA 4
Angelica Fuentes Pino
12-09-2022
Técnico en Informática.
DESARROLLO
Utilizando PHPTester, diseñe una función que permita calcular el área de un triángulo, un cuadrado y un
círculo, considere todas las variables necesarias y declárelas con valores de prueba para ejecutar la
función y obtener en pantalla las 3 áreas configuradas
<?php
Echo "<h1>Calculador de areas </h1> <br>";
echo "<br>";
Function operaciones($numero1, $numero2, $area)
{
switch ($area){
case "triangulo";
$area=(($numero1*$numero2)/2);
echo "El Area del Triangulo es : $area. <br>";
break;
}
switch ($area){
case "cuadrado";
$area=(POW($numero1,2));
echo "El Area del Cuadrado es : $area. <br>";
break;
}
switch ($area){
case "circulo";
$area=(3.1415*POW($numero1,2));
echo "El Area del Circulo es : $area. <br>";
break;
default: "no se permiten otras figuras geométricas";
}
}
operaciones(3,4,"triangulo");
operaciones(3,4,"cuadrado");
operaciones(3,4,"circulo");
?>
2. Al utilizar variables y funciones en PHP mencione qué extensiones y qué clases e interfaces reconoce
como parte del lenguaje.
A continuación se nombran y describen algunas de las extensiones más
importantes de PHP ordenadas categóricamente (un total de 48 extensiones):
Extensión / Descripción / funciones y clases e interfaces
Incorporación
Extensiones básicas
Manejo de Funciones para el manejo de variables\: boolval, empty, floatval,
variables / núcleo
get_defined_vars, gettype, intval, is_array, is_callable,
is_null, isset, print_r, serialize, unset, unserialize, var_dump...
Manejo de Funciones para el manejo de funciones\: call_user_func_array,
funciones / núcleo
call_user_func, func_get_args, func_num_args, function_exists,
get_defined_functions...
Strings / núcleo Funciones para la manipulación de strings\: chr, echo, explode,
htmlentities, htmlspecialchars, implode, join, md5, nl2br, print,
printf, str_repeat, str_replace, str_shuffle, stripos, strlen,
strtoupper,
substr, ucfirst, trim...
Arrays / núcleo Funciones para interactuar con arrays y manipularlos\:
array_chunk,
array_diff, array_keys, array_map, array_push, array_rand,
array_replace, array_search, array_shift, array_pop, array_merge,
array_walk, count, each, extract, list, reset, sort...
Información de clases y Permiten obtener información sobre clases y objetos\: __autoload,
objetos / núcleo call_user_method, class_alias, class_exists, get_called_class,
get_class, get_object_vars, is_a, get_declared_classes,
method_exists...
Directorios / núcleo Funciones para trabajar con directorios. Clases:
Directory. Functions\: chdir, chroot, closedir, dir, getcwd, opendir,
scandir...
Sistema de Funciones para trabajar con archivos\: basename, chmod, chown,
ficheros / núcleo dirname, fclose, feof, file_exists, file_get_contents,
file_put_contents, file, filesize, fopen, fwrite, is_dir, is_readable,
is_uploaded_file, mkdir, pathinfo, readfile, rmdir, tmpfile...
Fecha/Hora / núcleo Funciones para obtener fecha y hora que dependen del
servidor. Clases: DateTime, DateTimeImmutable, DateTimeZone,
DateInterval, DatePeriod. Functions\: checkdate, date_add,
date_create, date_format, date_time_set, date, localtime,
microtime, strtotime, time... (muchas funciones son alias de las
clases)
Sesiones / núcleo Funciones de sesiones, formas de preservar información para
accesos subsiguientes. Clases: SessionHandler. Interfaces:
SessionHandlerInterface. Functions\: session_abort,
session_encode, session_id, session_name, session_start,
session_status, session_unset...
Mail / núcleo Función que permite enviar correos\: mail
PDO / bundled La extensión PDO (PHP Data Objects) define una interfaz ligera para
acceder a bases de datos en PHP. Proporciona una capa de
abstracción de acceso a datos que emplea las mismas funciones y
consultas independientemente de la base de datos que se
utilice. Clases\: PDO, PDOStatement,
PDOException. Controladores\: MS SQL Server, Mysql, Oracle,
PostgreSQL, SQLite...
Afectan al
comportamiento de PHP
APC / Pecl Alternative PHP Cache, código de operación de caché libre y abierto
para PHP. Clases: APCIterator. Functions: apc_add, aps_bin_dump,
apc_cache_info, apc_clear_cache, apc_exists, apc_store...
Manejo de Funciones para el manejo y registro de errores\: debug_backtrace,
errores / núcleo error_clear_last, error_get_last, error_log, set_error_handler,
trigger_error...
OPCache / bundled Mejora el rendimiento de PHP almacenando el código de bytes en
un script precompilado en la memoria compartida, eliminando la
necesidad de que PHP cargue y analice los script en cada petición.
Functions\: opcache_get_configuration, opcache_get_status,
opcache_is_script_cached...
Control de la Funciones que permiten controlar cuándo se envía la salida.
salida / núcleo Functions\: flush, ob_clean, ob_flush, ob_get_contents,
ob_get_status, ob_start...
Opciones e información Funciones que proporcionan información sobre PHP. Functions\:
de PHP / núcleo extension_loaded, gc_enable, get_defined_constants,
get_extension_funcs, get_include_path, get_loaded_extensions,
getenv, memory_get_usage, phpinfo, phpversion, set_time_limit,
version_compare...
Extensiones de
compresión y archivos
Bzip2 / externa Módulo para leer y escribir archivos comprimidos con bzip2 (.bz2).
Functions\: bzclose, bzcompress, bzdecompress, bzerror, bzflush,
bzopen...
Zlib / bundled Módulo para leer y escribir ficheros comprimidos con gzip (.gz).
Functions\: gzclose, gzcompress, gzencode, gzfile, gzopen,
gzread, gztell, gzwrite...
LZF / pecl LZF es un algoritmo de compresión muy rápido, ideal para ahorrar
espacio con un ligero costo en velocidad. Utiliza la librería liblzf.
Functions\: lzf_compress, lzf_decompress, lzf_optimized_for
Zip / externa Extensión que permite leer o escribir archivos Zip y los archivos de
dentro. Clases: ZipArchive. Functions\: zip_close,
zip_entry_filesize, zip_entry_name, zip_entry_name,
zip_entry_read, zip_open, zip_read...
Extensiones
criptográficas
Hash / núcleo Motor para cifrar mensajes (algoritmos hash). Functions\:
hash_algos, hash_copy, hash_file, hash_init, hash_update, hash...
Mcrypt / externas Interfaz para la biblioteca mcrypt, admite una gran variedad de
algoritmos de bloques como DES, TRIpleDES, Blowfish, 3-WAY,
SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 y GOST en los
modos de cifrado CBC, OFB, CBF y ECB. Functions\: mcrypt_cbc,
mcrypt_cfb, mcrypt_decrypt, mcrypt_encrypt, mcrypt_generic,
mcrypt_list_algorithms, mcrypt_list_modes, mcrypt_module_open,
mcrypt_ofb...
OpenSSL / externas Módulo que emplea las funciones de OpenSSL (sólo algunas) para
la generación y verificación de firmas y para encriptar y
desencriptar datos. Functions:\ openssl_csr_export,
openssl_csr_new, openssl_csr_sign, openssl_decrypt,
openssl_digest, openssl_encrypt, openssl_open, openssl_pkey_free,
openssl_seal, openssl_sign, spenssl_spki_new, openssl_verify...
Hash de Proporciona una envoltura fácil de usar sobre crypt() para hacerla
contraseñas / núcleo sencilla para crear y administrar contraseñas de forma segura.
Functions\: password_get_info, password_hash,
password_needs_rehash, password_verify
Soporte para el lenguaje
humano y codificación
de caracteres
iconv / bundled Este módulo tiene una interfaz para la conversión de conjuntos de
caracteres iconv. Se puede convertir un conjunto de caracteres
local por otro, el cual puede ser Unicode. Es recomendable instalar
la librería GNU libiconv. Functions\: iconv_get_encoding,
iconv_mime_encode, iconv_strlen, iconv_strpos, iconv_substr,
iconv...
intl / bundled Extensión para la internacionalización intl es una envoltura para la
librería ICU, permitiendo realizar un cotejo que cumple con
el UCA y formatear fecha/hora/número/moneda en los
scripts. Clases: Collator, NumberFormatter, Locale, Normalizer,
MessageFormatter, IntlCalendar, IntlTimeZone, IntlDateFormatter,
ResourceBundle, Spoofchecker, Transliterator, IntlChar,
IntlException...
mbstring / bundled Los esquemas de codificación multibyte se desarrollaron para
expresar más de 256 caracteres en el sistema de codificación
regular a nivel de bits. Cuando se manipulan strings en una
codificación multibyte, es necesario utilizar funciones
especiales. mbstring proporciona funciones específicas para
cadenas de texto multibyte que ayudan a tratar codificaciones
multibyte en PHP. Functions\: mb_convert_case,
mb_detect_encoding, mb_encoding_aliases, mb_ereg_replace,
mb_ereg_search_init, mb_ereg, mb_parse_str, mb_send_mail,
mb_split, mb_strlen, mb_strrpos, mb_substr...
Procesamiento y
generación de imágenes
Exif / bundled Con la extensión Exif, Exchangeable image information , se puede
trabajar con metadatos de imágenes (ej: funciones para leer
metadatos de fotografías tomadas con cámaras digitales con la
información almacenada en las cabeceras de imágenes JPEG y TIFF).
Functions\: exif_imagetype, exif_read_data, exif_tagname,
exif_thumbnail...
GD / bundled PHP también se puede usar para crear y manipular ficheros de
imágenes en diferentes formatos: GIF, PNG, JPEG, WBMP, XPM. PHP
puede transferir flujos de imagen directamente al navegador.
Functions\: gd_info, getimagesize, imageaffine, imagearc,
imagecolorat, imagecolormatch, imagecolorset, imagecopy,
imagecreate, imagecreatefromgd, imagecrop, imagedestroy,
imagefill, imageflip, imagegif, imagejpeg, imageline, imagescale...
ImageMagick / pecl Extensión nativa de PHP para crear y modificar imágenes con la
API ImageMagick (software para crear, editar y componer imágenes
de mapa de bits). Puede leer, convertir y escribir imágenes en más
de 100 formatos. Clases: Imagick, ImagickDraw, ImagicPixel,
ImagickPixelIterator, ImagickKernel...
Servicios web
OAuth / pecl Extensión que provee un cliente y un servicio OAuth (protocolo de
autorización basado en HTTP que permite a las aplicaciones
garantizar el acceso a datos sin tener alojado un nombre de
usuario y contraseña). Clases: OAuth, OAuthProvider
SOAP / externas La extensión SOAP se utiliza para escribir servidores y clientes
SOAP. Clases: SOAPClient, SoapServer, SoapFault, SoapHeader,
SoapParam, SoapVar...
Manipulación XML
DOM / externas La extensión DOM, Document Object Model, permite manipular
documentos XML mediante la API DOM. Clases: DOMAttr,
DOMCdataSection, DOMCharacterData, DOMComment,
DOMDocument, DOMElement, DOMEntity, DOMNode...
SimpleXML / externas Proporciona un conjunto de herramientas para convertir XML a un
objeto que pueda ser procesado con selectores de propiedades e
iteradores de arrays. Clases: SimpleXMLElement,
SimpleXMLIterator. Functions\: simplexml_import_dom,
simplexml_load_file, simplexml_load_string...
Analizador Extensión que implementa el soporte para expat con herramientas
XML / externas para analizar (no validar) documentos XML. Functions\:
utf8_encode, xml_error_string, xml_get_current_line_number,
xml_get_error_code, xml_parse, xml_set_default_handler,
xml_set_object
XMLReader / externas XMLReader es un analizador de XML. El lector actúa como un
cursor yendo hacia delante en el flujo del documento y
deteniéndose en cada nodo. Clases: XMLReader
XMLWriter / externas Envuelve la API XMLWriter de libxml. Representa un escritor que
provee medios no almacenados en caché de sólo avance para la
generación de flujos o ficheros con datos XML. Clases: XMLWriter
Otras extensiones
básicas
Curl / externas Librería libcurl que permite conectarse y comunicarse con
diferentes tipos de servidores y protocolos: http,
https, ftp, gopher, telnet, dict, file y ldap. También admite
certificados HTTPS, HTTP, POST, HTTP PUT, subidas mediante FTP
(también es posible hacerlo con la extensión FTP de PHP), subidas
con formularios HTTP, proxies, cookies y autentificación. Clases:
CURLFile. Functions\: curl_close, curl_errno, curl_error, curl_exec,
curl_init, curl_multi_exec, curl_multi_init, curl_pause, curl_reset,
curl_setopt, curl_strerror...
FTP / bundled Las funciones de esta extensión implementan el acceso por parte
del cliente a los servidores mediante FTP, el Protocolo de
Transferencia de Ficheros. Functions\: ftp_alloc, ftp_chdir,
ftp_chmod, ftp_close, ftp_connect, ftp_exec, ftp_get, ftp_login,
ftp_mkdir, ftp_put, ftp_quit, ftp_raw, ftp_rename, ftp_rmdir...
LDAP / externas El LDAP, Lightweight Directory Acess Protocol , se utiliza para
acceder a servidores de directorio. Un directorio es un tipo especial
de base de datos que mantiene información en una estructura de
árbol. Functions\: ldap_add, ldap, bind, ldap_close, ldap_compare,
ldap_connect, ldap_delete, ldap_error, ldap_free_result,
ldap_get_values, ldap_list, ldap_read...
GeoIP / pecl La extensión GeoIP permite buscar la localicación de una dirección
IP (ciudad, país, estado, longitud, latitud, ISP, tipo de conexión...).
Functions\: geoip_continent_code_by_name,
geoip_country_code_by_name, geoip_database_info,
geoip_id_by_name, geoip_netspeedcell_by_name,
geoip_region_by_name, geoip_time_zone_by_country_and_region...
JSON / bundled Extensión que implementa el formato de intercambio de
datos JSON Javascript Object Notation JSON. Interface:
JsonSerializable. Functions:\ json_decode, json_encode,
json_last_error_msg, json_last_error...
Reflection / núcleo API de reflexión con capacidad para realizar ingeniería inversa de
clases, interfaces, funciones, métodos y extensiones. Ofrece
también formas de obtener comentarios de documentación de
funciones, clases y métodos. Clases: Reflection, ReflectionClass,
ReflectionExtension, ReflectionFunction, ReflectionMethod,
ReflectionProperty...
SPL / núcleo Biblioteca Estándar de PHP, Standard PHP Library, colección de
interfaces y clases pensadas para solucionar problemas comunes.
Estructuras de datos, Iteradores, Interfaces, Excepciones, Manejo
de ficheros. Functions\: class_implements, class_uses,
iterator_count, spl_autoload_register, spl_classes...
Tokenizer / núcleo Funciones que proporcionan una interfaz para la creación de
tokens de PHP. Con esta extensión, integrada en el Motor Zend, se
pueden escribir herramientas propias de análisis o de modificación
de código fuente de PHP sin tener que hacer frente a las
especificaciones del lenguaje a nivel léxico. Functions\:
token_get_all, token_name
URLs / núcleo Funciones para tratar con URLs: codificación, decodificación y
conversión. Functions\: get_headers, get_meta_tags, parse_url,
urldecode, urlencode...
Memcached / pecl Sistema de alto rendimiento para el almacenamiento de objetos en
caché de memoria distribuida, pensado para acelerar aplicaciones
web dinámicas aliviando la carga de bases de datos. Clases:
Memcached, MemcachedException
SSH2 / pecl Enlaza a la biblioteca libssh2 que provee acceso a recursos sobre
una máquina remota utilizando una vía de transporte criptográfica
segura. Functions\: ssh2_auth_agent, ssh2_auth_none,
ssh2_connect, ssh2_exec, ssh2_fingerprint, ssh2_scp_recv,
ssh2_sftp_mkdir, ssh2_sftp_rename, ssh2_sftp...
round()
Esta función nos permitirá hacer redondeo, osea recibirá como parámetro un número y si el valor
después del punto (o de la coma) es menor a 50 redondeará para abajo, de lo contrario lo hará un
número más:
<?php
$decimal = 1.49;
$decimal_redondeado = round($decimal);
echo $decimal_redondeado;
?>
floor()
Esta función también hará un redondeo pero siempre para abajo, osea que si tenemos esto:
<?php
$decimal = 1.50;
$decimal_redondeado = floor($decimal);
echo $decimal_redondeado;
?>
ceil()
Si en cambio queremos que el redondeo sea siempre para arriba deberíamos usar ceil():
<?php
$decimal = 1.50;
$decimal_redondeado = ceil($decimal);
echo $decimal_redondeado;
?>
rand()
La función rand() es una de las más útiles que hay. Esta función generará un número al azar que
irá desde un rango desde/hasta. Por ejemplo si quisiéramos devolver un número desde el 1 al 9
(inclusive):
<?php
$numero_al_azar = rand(1, 9);
echo $numero_al_azar;
?>
ucfirst()
En este caso, esta función sólo nos convertirá la primer letra de una cadena en mayúscula:
<?php
$palabra = 'fernando';
$nombre = ucfirst($palabra);
echo $nombre;
?>
REFERENCIAS BIBLIOGRÁFICAS
Aprendiendo PHP, parte 11: Funciones nativas – Fernando Gaitán ([Link])
IACC (2018). Funciones. Programación. Semana 4.