hebrev()
La funzione hebrev() converte il testo ebraico logico in testo visivo per la visualizzazione in una pagina web. La sintassi è la seguente:
La funzione PHP hebrev() converte il testo ebraico logico (memorizzato nell'ordine in cui viene digitato, da destra a sinistra) in testo visivo (disposto da sinistra a destra in modo che un display non RTL lo visualizzi correttamente). Lo fa invertendo la sequenza di caratteri ebraici nella stringa, lasciando punteggiatura e spazi leggibili.
Questa pagina illustra cosa faceva hebrev(), la sua sintassi e i parametri, esempi eseguibili, perché è stata rimossa e cosa usare al suo posto oggi.
hebrev() è stata deprecata in PHP 7.2 e completamente rimossa in PHP 8.0. Chiamarla su PHP 8+ genera un Error: Call to undefined function hebrev(). Questa pagina è dedicata alla comprensione e alla manutenzione di codice legacy. Per il nuovo codice, lascia che il browser gestisca la direzione con HTML dir="rtl" o CSS direction: rtl — vedi Perché è stata rimossa e cosa usare al suo posto.
Sintassi
hebrev(string $string, int $max_chars_per_line = 0): string| Parametro | Obbligatorio | Descrizione |
|---|---|---|
$string | Sì | Il testo ebraico (logico) da convertire. |
$max_chars_per_line | No | Numero massimo di caratteri per riga per il ritorno a capo. Quando è 0 (impostazione predefinita), non viene applicato nessun ritorno a capo aggiuntivo. |
La funzione restituisce la stringa convertita in ordine visivo. I caratteri non ebraici (lettere ASCII, cifre, punteggiatura) vengono lasciati al loro posto.
Esempio di base
Ecco il caso d'uso più semplice di hebrev() — converti una stringa ebraica logica in ordine visivo:
La sequenza ebraica viene invertita in modo che si legga correttamente in un ambiente da sinistra a destra. L'output è:
תירבע רבדמ ינא ,ןכRitorno a capo delle righe con $max_chars_per_line
Il secondo parametro inserisce interruzioni di riga in modo che nessuna riga superi la larghezza specificata. Ha effetto solo quando una sequenza ebraica è più lunga del limite — le stringhe brevi come quella seguente si trovano su una singola riga, quindi l'output è identico all'esempio di base. Con 40 qui, il testo è ben al di sotto del limite e non viene spezzato:
L'output:
תירבע רבדמ ינא ,ןכPer vedere il ritorno a capo effettivamente attivato, occorre una sequenza ebraica più lunga di $max_chars_per_line; solo allora vengono inserite le interruzioni di riga.
Perché è stata rimossa e cosa usare al suo posto
hebrev() è antecedente al rendering bidirezionale Unicode nei browser. Il trucco dell'"ordine visivo" era necessario quando i terminali e i vecchi browser non riuscivano a riordinare autonomamente il testo da destra a sinistra. Oggi il livello di rendering gestisce tutto ciò, quindi invertire i caratteri in PHP è sia inutile che distruttivo (integra il layout nei dati).
Per il nuovo codice, mantieni il testo nel suo ordine logico naturale e imposta la direzione nel markup:
<p dir="rtl">כן, אני מדבר עברית</p>Oppure con CSS:
.hebrew { direction: rtl; }Il browser riordina e manda a capo il testo correttamente, e la stringa sottostante rimane pulita per la ricerca, il copia-incolla e l'archiviazione.
La funzione correlata hebrevc() eseguiva la stessa conversione convertendo anche i newline in tag <br>; è stata rimossa anch'essa in PHP 8.0 — i moderni CSS gestiscono automaticamente i ritorni a capo.
Funzioni correlate
hebrevc()— stessa conversione, con i newline convertiti in<br>(rimossa anch'essa in PHP 8.0).strrev()— inverte ogni carattere in una stringa (non consapevole dell'ebraico).wordwrap()— il modo standard, ancora supportato, per mandare a capo il testo a una data larghezza di riga.nl2br()— inserisce interruzioni di riga HTML prima dei newline in una stringa.