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