PHP 8.4.1 Released!

ps_hyphenate

(PECL ps >= 1.1.1)

ps_hyphenateParticionar silábicamente una palabra

Descripción

ps_hyphenate(resource $psdoc, string $text): array

Particiona silábicamente la palabra proporcionada. ps_hyphenate() evalúa el valor "hyphenminchars" (establecido mediante la función ps_set_value()) y el parámetro "hyphendict" (establecido mediante la función ps_set_parameter()). "hyphendict" debe establecerse antes de llamar a esta función.

Esta función requiere que la categoría de configuración regional LC_CTYPE sea establecida correctamente. Esto se realiza cuando la extensión se inicializa utilizando las variables de entorno. Lea el manual de 'locale' de sistemas Unix para más información.

Parámetros

psdoc

El identificador de recursos del fichero postscript, como el devuelto por la función ps_new().

text

text no debería contener ningún carácter que no sea una letra. Las posiciones posibles para las divisiones son devueltas en un array de números enteros. Cada número es la posición del carácter de text después del cual puede tomar lugar una partición silábica.

Valores devueltos

Un array de enteros indicando la posición de posibles divisiones del texto o false en caso de error.

Ejemplos

Ejemplo #1 Particionar silábicamente un texto

<?php
$palabra
= "Koordinatensystem";
$doumento_ps = ps_new();
ps_set_parameter($doumento_ps, "hyphendict", "hyph_de.dic");
$guiones = ps_hyphenate($doumento_ps, $palabra);
for(
$i=0; $i<strlen($palabra); $i++) {
echo
$palabra[$i];
if(
in_array($i, $guiones))
echo
"-";
}
ps_delete($doumento_ps);
?>

El resultado del ejemplo sería:

Ko-ordi-na-ten-sys-tem

Ver también

add a note

User Contributed Notes 1 note

up
1
1manfactory at gmail dot com
8 years ago
The above example does NOT work with German Umlauts (äöü) properly.

I had to do the following to make it work.

setlocale (LC_CTYPE , "de_DE.iso88591"); # it does not work with "de_DE.utf8" and of course your system should run this locale setting

$hyphens = ps_hyphenate($psdoc, utf8_decode($word)); # only our couse if your source code is UTF8 coded

for($i=0; $i<mb_strlen($word); $i++) { # to be on the safe side

echo utf8_encode($word[$i]); # again only if your code is UTF8
To Top