Extensions

Gestione delle stringhe con JString

Joomla gestisce le stringhe utilizzando la codifica Unicode UTF-8, uno standard scelto principalmente per l'internazionalizzazione, infatti consente di gestire praticamente tutti i linguaggi utilizzabili sul Web.

Il problema di questa codifica è che PHP non la supporta, o meglio la considera alla stregua della codifica ASCII - il che potrebbe portare ad una scorretta interpretazione dei dati, in quanto UTF-8 è una codifica a lunghezza variabile, mentre ASCII è una codifica a lunghezza fissa (un byte). Se la stringa UTF-8 è più lunga di un byte, ovvero 8 bit, essa viene troncata.

Per evitare l'insorgere di problemi di questo tipo, Joomla fornisce una classe JString che mette a disposizione svariate funzioni che sono il corrispondente della funzione PHP relativa, ma che pongono rimedio a questo problema di codifica.

Ad esempio la funzione strlen di PHP viene chiamata in questo modo:

$lunghezza = strlen($stringa);

Usando la classe JString, la chiamata assume questa sintassi:

$lunghezza = JString::strlen($stringa);

E così per tutti i metodi forniti da JString:

  • Static method static string ltrim (string $str, [string $charlist = FALSE]): rimuove gli eventuali spazi bianchi dall'inizio della stringa
  • Static method static string rtrim (string $str, [string $charlist = FALSE]): rimuove eventuali spazi bianchi al termine della stringa
  • Static method static int strcasecmp (string $str1, string $str2): confronta le due stringhe fornite come argomento
  • Static method static int strcspn (string $str, string $mask, [int $start = NULL], [int $length = NULL]): restituisce la lunghezza della stringa $str prima che al suo interno venga trovata la stringa $mask.
  • Static method static string stristr (string $str, string $search): trova la prima occorrenza della stringa $search in $str, case insensitive.
  • Static method static mixed strpos (string $str, string $search, [$offset $offset = FALSE]): trova la prima occorrenza della stringa $search in $str.
  • Static method static string strrev (string $str): inverte una stringa
  • Static method static mixed strrpos (string $str, string $search): trova il numero di caratteri prima dell'ultima occorrenza di $search nella stringa $str.
  • Static method static void strspn (string $str, string $mask, [int $start = NULL], [int $length = NULL]): conta il segmento più lungo della stringa che contiene i caratteri specificati.
  • Static method static void str_ireplace (string $search, string $replace, string $str, [int $count = NULL]): versione case insensitive di str_replace.
  • Static method static array str_split (string $str, [int $split_len = 1]): suddivide una stringa inserendo tutte le parole che la compongono in un array.
  • Static method static mixed substr (string $str, integer $offset, [integer $length = FALSE]): ritorna una porzione di stringa.
  • Static method static void substr_replace (string $str, string $repl, int $start, [int $length = NULL]): sostituisce una porzione di stringa.
  • Static method static string transcode (string $source, string $from_encoding, string $to_encoding): cambia la codifica di una stringa.
  • Static method static string trim (string $str, [string $charlist = FALSE]): rimuove gli spazi bianchi dall'inizio e dalla fine di una stringa.
  • Static method static string ucfirst (string $str): rende maiuscolo il primo carattere di una stringa.
  • Static method static string ucwords (string $str): rende maiuscolo il primo carattere di ogni parola trovata nella stringa.
  • Method int strlen (string $str): ritorna la lunghezza della stringa $str
  • Method mixed strtolower (string $str): modifica la stringa $str ponendo tutti i caratteri minuscoli
  • Method mixed strtoupper (string $str): modifica la stringa $str ponendo tutti i caratteri maiuscoli

Corso Joomla