hebrev()
La función hebrev() convierte texto hebreo lógico en texto visual para mostrarlo correctamente en una página web. Sintaxis, parámetros y ejemplos.
La función hebrev() de PHP convierte texto hebreo lógico (almacenado en el orden en que se escribe, de derecha a izquierda) en texto visual (dispuesto de izquierda a derecha para que una pantalla que no admite RTL lo muestre correctamente). Lo consigue invirtiendo la secuencia de caracteres hebreos en la cadena, dejando la puntuación y los espacios legibles.
Esta página explica qué hacía hebrev(), su sintaxis y parámetros, ejemplos ejecutables, por qué se eliminó y qué usar en su lugar hoy en día.
hebrev() fue declarada obsoleta en PHP 7.2 y eliminada completamente en PHP 8.0. Llamarla en PHP 8+ lanza un Error: Call to undefined function hebrev(). Esta página existe solo para comprender y mantener código heredado. Para código nuevo, deja que el navegador gestione la dirección con HTML dir="rtl" o CSS direction: rtl — consulta Por qué se eliminó y qué usar en su lugar.
Sintaxis
hebrev(string $string, int $max_chars_per_line = 0): string| Parámetro | Requerido | Descripción |
|---|---|---|
$string | Sí | El texto hebreo (lógico) a convertir. |
$max_chars_per_line | No | Número máximo de caracteres por línea para el ajuste de texto. Con 0 (valor predeterminado), no se aplica ningún ajuste adicional. |
La función devuelve la cadena convertida en orden visual. Los caracteres no hebreos (letras ASCII, dígitos, puntuación) se dejan en su lugar.
Ejemplo básico
Este es el uso más simple de hebrev(): convertir una cadena hebrea lógica a orden visual:
La secuencia hebrea se invierte para que se lea correctamente en un entorno de izquierda a derecha. La salida es:
תירבע רבדמ ינא ,ןכAjuste de líneas con $max_chars_per_line
El segundo parámetro inserta saltos de línea para que ninguna línea supere el ancho indicado. Solo tiene efecto cuando una secuencia hebrea es más larga que el límite — cadenas cortas como la del ejemplo siguiente caben en una sola línea, por lo que la salida es idéntica al ejemplo básico. Con 40 aquí, el texto está muy por debajo del límite y no se ajusta:
La salida:
תירבע רבדמ ינא ,ןכPara que el ajuste se active realmente, se necesitaría una secuencia hebrea más larga que $max_chars_per_line; solo entonces se insertan saltos de línea.
Por qué se eliminó y qué usar en su lugar
hebrev() es anterior a la representación Unicode bidireccional en los navegadores. El truco del "orden visual" era necesario cuando los terminales y los navegadores antiguos no podían reordenar el texto de derecha a izquierda por sí mismos. Hoy la capa de renderizado se encarga de esto, por lo que invertir caracteres en PHP es innecesario y destructivo (integra el diseño en los datos).
Para código nuevo, mantén el texto en su orden lógico natural y establece la dirección en el marcado:
<p dir="rtl">כן, אני מדבר עברית</p>O con CSS:
.hebrew { direction: rtl; }El navegador entonces reordena y ajusta el texto correctamente, y la cadena subyacente permanece limpia para búsquedas, copiar y pegar, y almacenamiento.
La función complementaria hebrevc() realizaba la misma conversión también convirtiendo los saltos de línea en etiquetas <br>; también fue eliminada en PHP 8.0 — el CSS moderno ajusta las líneas automáticamente.
Funciones relacionadas
hebrevc()— la misma conversión, con los saltos de línea convertidos a<br>(también eliminada en PHP 8.0).strrev()— invierte todos los caracteres de una cadena (no tiene en cuenta el hebreo).wordwrap()— la forma estándar y aún compatible de ajustar texto a un ancho de línea determinado.nl2br()— inserta saltos de línea HTML antes de los saltos de línea en una cadena.