W3docs

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.

Attenzione

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
ParametroObbligatorioDescrizione
$stringIl testo ebraico (logico) da convertire.
$max_chars_per_lineNoNumero 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:

php— editable, runs on the server

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:

php— editable, runs on the server

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.

Esercitazione

Pratica
Cosa fa la funzione hebrev() in PHP?
Cosa fa la funzione hebrev() in PHP?
Was this page helpful?