Helper Text


1Présentation

Helper proposant plusieurs méthodes de manipulation de chaînes de caractères.


2filenamize()

Convertit un texte en une chaîne de caractères qui puisse être utilisée comme nom de fichier.

Signature de la méthode :

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

Paramètres :

  • $filename : Le texte à convertir.
  • $hyphenSpaces : true pour que les espaces soient remplacés par des tirets.
  • $lowercase : true pour que le texte soit tout en minuscules.

Valeur de retour : Le nom de fichier.


3urlize()

Convertit un texte pour qu'il puisse être utilisé dans une URL.

Signature de la méthode :

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

Paramètres :

  • $txt : Le texte à convertir.
  • $avoidUnderscores : true pour remplacer les underscores par des tirets.

Valeur de retour : Le texte converti.


4isValidHtmlSyntax()

Cette méthode permet de savoir si un flux HTML est correct du point de vue de sa syntaxe.

Signature de la méthode :

isValidHtmlSyntax(string $html) : bool

Paramètre : Le flux HTML à valider.

Valeur de retour : true si le flux HTML est valide, sinon false.


5htmlToText()

Cette méthode transforme un flux HTML en texte brut.

Signature de la méthode :

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

Paramètres :

  • $html : Flux HTML à convertir.
  • $cleanup : true pour supprimer les contenus des balises <blockquote>, <pre> et <code>.

Valeur de retour : Le texte brut généré à partir du HTML.


6encodingCompatible()

Cette méthode indique si une chaîne de caractères encodée en UTF-8 ne contient que des caractères compatibles avec l'encodage fourni en paramètre.

Signature de la méthode :

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

Paramètres :

  • $text : Le texte à analyser.
  • $encoding : L'encodage à utiliser.

Valeur de retour : true si le texte ne contient que des caractères compatibles avec l'encodage de caractères fourni en paramètre.


7ascii()

Cette méthode convertit une chaîne afin qu'elle ne contienne que des caractères ASCII.

Signature de la méthode :

ascii(?string $text) : string

Paramètres :

  • $text : Le texte à transformer.

Valeur de retour : Le texte transformé.


8firstChunk()

Cette méthode retourne la partie d'une chaîne qui est avant un séparateur.

Signature de la méthode :

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

Paramètres :

  • $str : La chaîne d'entrée.
  • $separator : Le séparateur.

Valeur de retour : La partie avant la chaîne, ou une chaîne vide si le séparateur n'a pas été trouvé.


9lastChunk()

Cette méthode retourne la partie d'une chaîne qui est après un séparateur.

Signature de la méthode :

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

Paramètres :

  • $str : La chaîne d'entrée.
  • $separator : Le séparateur.

Valeur de retour : La partie après la chaîne, ou une chaîne vide si le séparateur n'a pas été trouvé.


10hasLower()

Cette méthode indique si une chaîne contient un caractère minuscule.

Signature de la méthode :

hasLower(?string $txt) : bool

Paramètres :

  • $txt : La chaîne à analyser.

Valeur de retour : true si la chaîne contient un caractère minuscule. False sinon.


11hasUpper()

Cette méthode indique si une chaîne contient un caractère majuscule.

Signature de la méthode :

hasUpper(?string $txt) : bool

Paramètres :

  • $txt : La chaîne à analyser.

Valeur de retour : true si la chaîne contient un caractère majuscule. False sinon.


12convertCase()

Cette méthode convertit le style d'écriture d'une chaîne de caractères.

Signature de la méthode :

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

Paramètres :

  • $txt : La chaîne à convertir.
  • $inCase : Le style d'écriture de la chaîne en entrée. Peut prendre les valeurs \Temma\Utils\Text::SNAKE_CASE, \Temma\Utils\Text::KEBAB_CASE, \Temma\Utils\Text::CAMEL_CASE ou \Temma\Utils\Text::PASCAL_CASE.
  • $outCase : Le style d'écriture de la chaîne en sortie. Peut prendre les valeurs \Temma\Utils\Text::SNAKE_CASE, \Temma\Utils\Text::KEBAB_CASE, \Temma\Utils\Text::CAMEL_CASE ou \Temma\Utils\Text::PASCAL_CASE.
  • $upperCase : (optionnel) true pour mettre la chaîne en majuscules, false en minuscule, null pour ne pas modifier la casse.
  • $ascii : true pour convertir la chaîne en sortie pour qu'elle ne contienne que des caractères ASCII.

Valeur de retour : La chaîne convertie, ou null si la chaîne d'entrée valait null.


13mimeTypesMatch()

Cette méthode vérifie si deux types MIME sont compatibles. Les deux types MIME doivent avoir la même casse (majuscules/minuscules).

Signature de la méthode :

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

Paramètres :

  • $mime1 : Premier type MIME. Chaîne sous la forme "image/png", "image/*" ou "image". Tableau sous la forme ['image', 'png'], ['image', '*'] ou ['image'].
  • $mime2 : Second type MIME (mêmes formats que $mime1).

Valeur de retour : true si les types MIME sont compatibles.

Exemple d'utilisation :

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

// correspondance exacte
TµText::mimeTypesMatch('image/png', 'image/png');  // true

// correspondance avec joker
TµText::mimeTypesMatch('image/*', 'image/png');    // true

// sans sous-type (équivalent à "image/*")
TµText::mimeTypesMatch('image', 'image/jpeg');     // true

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

// avec des tableaux
TµText::mimeTypesMatch(['image', 'png'], ['image', '*']); // true

14parseSize()

Cette méthode analyse une chaîne représentant une taille (ex. '10M', '5K') et retourne la valeur correspondante en octets.

Signature de la méthode :

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

Paramètres :

  • $len : La valeur de taille à analyser. Peut être un entier, un flottant, ou une chaîne avec un suffixe d'unité.
  • $base : (optionnel) La base de calcul souhaitée. Par défaut : 1024.

Valeur de retour : La taille en octets, ou null si null a été reçu en paramètre.

Exception : Lève une exception \Temma\Exceptions\IO si la chaîne n'est pas dans un format valide.

Suffixes reconnus (insensible à la casse) :

  • K : kilo (base1)
  • M : méga (base2)
  • G : giga (base3)
  • T : téra (base4)
  • P : péta (base5)
  • E : exa (base6)

Exemple d'utilisation :

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

// avec la base par défaut (1024)
TµText::parseSize('10K');  // 10240
TµText::parseSize('5M');   // 5242880
TµText::parseSize('2G');   // 2147483648

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

// valeurs numériques directes
TµText::parseSize(1024);  // 1024
TµText::parseSize(null);  // null