Helper Text


1Presentación

Helper que ofrece varios métodos para manipular cadenas de caracteres.


2filenamize()

Convierte texto en una cadena que se puede usar como nombre de archivo.

Firma del método:

filenamize(string $filename, bool $hyphenSpaces=true, bool $lowercase=true) : string

Parámetros:

  • $filename: Texto que se debe convertir.
  • $hyphenSpaces: true para reemplazar los espacios por guiones.
  • $lowercase: true para convertir todo el texto a minúsculas.

Valor de retorno: El nombre de archivo.


3urlize()

Convierte texto para que se pueda usar en una URL.

Firma del método:

urlize(?string $txt, bool $avoidUnderscores=true) : string

Parámetros:

  • $txt: Texto que se debe convertir.
  • $avoidUnderscores: true para reemplazar los guiones bajos por guiones.

Valor de retorno: El texto convertido.


4isValidHtmlSyntax()

Este método comprueba si un flujo HTML es sintácticamente correcto.

Firma del método:

isValidHtmlSyntax(string $html) : bool

Parámetro: El flujo HTML que se debe validar.

Valor de retorno: true si el flujo HTML es válido, false en caso contrario.


5htmlToText()

Este método transforma un flujo HTML en texto plano.

Firma del método:

htmlToText(string $html, bool $cleanup=false) : string

Parámetros:

  • $html: Flujo HTML que se debe convertir.
  • $cleanup: true para eliminar el contenido de las etiquetas <blockquote>, <pre> y <code>.

Valor de retorno: Texto plano generado a partir del HTML.


6encodingCompatible()

Este método indica si una cadena de caracteres codificada en UTF-8 contiene únicamente caracteres compatibles con la codificación indicada como parámetro.

Firma del método:

encodingCompatible(string $text, string $encoding) : bool

Parámetros:

  • $text: El texto que se debe analizar.
  • $encoding: La codificación que se debe usar.

Valor de retorno: True si el texto contiene únicamente caracteres compatibles con la codificación de caracteres indicada como parámetro.


7ascii()

Este método convierte una cadena para que contenga únicamente caracteres ASCII.

Firma del método:

ascii(?string $text) : string

Parámetros:

  • $text : El texto que se debe transformar.

Valor de retorno: El texto transformado.


8firstChunk()

Este método devuelve la parte de una cadena anterior a un separador.

Firma del método:

firstChunk(string $str, string $separator) : string

Parámetros:

  • $str : La cadena de entrada.
  • $separator : El separador.

Valor de retorno: La parte anterior al separador, o una cadena vacía si el separador no se ha encontrado.


9lastChunk()

Este método devuelve la parte de una cadena posterior a un separador.

Firma del método:

lastChunk(string $str, string $separator) : string

Parámetros:

  • $str : La cadena de entrada
  • $separator : El separador.

Valor de retorno: La parte posterior al separador, o una cadena vacía si el separador no se ha encontrado.


10hasLower()

Este método indica si una cadena contiene un carácter en minúscula.

Firma del método:

hasLower(?string $txt) : bool

Parámetros:

  • $txt : La cadena que se debe analizar.

Valor de retorno : true si la cadena contiene un carácter en minúscula. False en caso contrario.


11hasUpper()

Este método indica si una cadena contiene un carácter en mayúscula.

Firma del método:

hasUpper(?string $txt) : bool

Parámetros:

  • $txt : La cadena que se debe analizar.

Valor de retorno: true si la cadena contiene un carácter en mayúscula. False en caso contrario.


12convertCase()

Este método convierte el estilo de escritura de una cadena de caracteres.

Firma del método:

convertCase(?string $txt, string $inCase, string $outCase, ?bool $upperCase=null, bool $ascii=false) : ?string

Parámetros:

  • $txt : La cadena que se debe convertir.
  • $inCase : El estilo de escritura de la cadena de entrada. Puede tomar los valores \Temma\Utils\Text::SNAKE_CASE (snake_case), \Temma\Utils\Text::KEBAB_CASE (kebab-case), \Temma\Utils\Text::CAMEL_CASE (camelCase), \Temma\Utils\Text::PASCAL_CASE (PascalCase) o \Temma\Utils\Text::UPPER_CASE (UPPER_CASE).
  • $outCase : El estilo de escritura de la cadena de salida. Puede tomar los valores \Temma\Utils\Text::SNAKE_CASE (snake_case), \Temma\Utils\Text::KEBAB_CASE (kebab-case), \Temma\Utils\Text::CAMEL_CASE (camelCase), \Temma\Utils\Text::PASCAL_CASE (PascalCase) o \Temma\Utils\Text::UPPER_CASE (UPPER_CASE).
  • $upperCase : (opcional) true para mayúsculas, false para minúsculas, null para dejar las mayúsculas/minúsculas sin cambios. Cuando el estilo de salida es UPPER_CASE, la cadena se fuerza a mayúsculas; a menos que este parámetro sea false, en cuyo caso la salida es equivalente a SNAKE_CASE.
  • $ascii : true para convertir la cadena de salida de modo que contenga únicamente caracteres ASCII.

Valor de retorno: La cadena convertida, o null si la cadena de entrada era null.

Ejemplo de uso:

use \Temma\Utils\Text as TµText;

// conversión de un estilo de escritura a otro
TµText::convertCase('hello_world', TµText::SNAKE_CASE, TµText::CAMEL_CASE);   // 'helloWorld'
TµText::convertCase('helloWorld', TµText::CAMEL_CASE, TµText::KEBAB_CASE);    // 'hello-world'
TµText::convertCase('hello-world', TµText::KEBAB_CASE, TµText::PASCAL_CASE);  // 'HelloWorld'

// conversión a UPPER_CASE (snake case en mayúsculas)
TµText::convertCase('helloWorld', TµText::CAMEL_CASE, TµText::UPPER_CASE);    // 'HELLO_WORLD'

// conversión desde UPPER_CASE
TµText::convertCase('HELLO_WORLD', TµText::UPPER_CASE, TµText::CAMEL_CASE);   // 'helloWorld'

// salida UPPER_CASE con $upperCase en false => snake case
TµText::convertCase('helloWorld', TµText::CAMEL_CASE, TµText::UPPER_CASE, false); // 'hello_world'

13mimeTypesMatch()

Este método comprueba si dos tipos MIME son compatibles. Ambos tipos MIME deben tener las mismas mayúsculas/minúsculas.

Firma del método:

mimeTypesMatch(string|array $mime1, string|array $mime2) : bool

Parámetros:

  • $mime1: Primer tipo MIME. Cadena con la forma "image/png", "image/*" o "image". Array con la forma ['image', 'png'], ['image', '*'] o ['image'].
  • $mime2: Segundo tipo MIME (mismos formatos que $mime1).

Valor de retorno: true si los tipos MIME son compatibles.

Ejemplo de uso:

use \Temma\Utils\Text as TµText;

// coincidencia exacta
TµText::mimeTypesMatch('image/png', 'image/png');  // true

// coincidencia con comodín
TµText::mimeTypesMatch('image/*', 'image/png');    // true

// sin subtipo (equivalente a "image/*")
TµText::mimeTypesMatch('image', 'image/jpeg');     // true

// tipos incompatibles
TµText::mimeTypesMatch('image/png', 'text/html');  // false

// con arrays
TµText::mimeTypesMatch(['image', 'png'], ['image', '*']); // true

14parseSize()

Este método analiza una cadena de tamaño (por ejemplo, '10M', '5K') y devuelve el valor correspondiente en bytes.

Firma del método:

parseSize(mixed $len, int $base=1024) : ?int

Parámetros:

  • $len: El valor de tamaño que se debe analizar. Puede ser un entero, un flotante, o una cadena con un sufijo de unidad.
  • $base: (opcional) La base de cálculo deseada. Por defecto: 1024.

Valor de retorno: El tamaño en bytes, o null si se recibió null como parámetro.

Excepción: Lanza una excepción \Temma\Exceptions\IO si la cadena no tiene un formato válido.

Sufijos reconocidos (sin distinción de mayúsculas/minúsculas):

  • K: kilo (base1)
  • M: mega (base2)
  • G: giga (base3)
  • T: tera (base4)
  • P: peta (base5)
  • E: exa (base6)

Ejemplo de uso:

use \Temma\Utils\Text as TµText;

// con la base por defecto (1024)
TµText::parseSize('10K');  // 10240
TµText::parseSize('5M');   // 5242880
TµText::parseSize('2G');   // 2147483648

// con base 1000
TµText::parseSize('10K', 1000);  // 10000
TµText::parseSize('5M', 1000);   // 5000000

// valores numéricos directos
TµText::parseSize(1024);  // 1024
TµText::parseSize(null);  // null