ConFoo 2025

ps_hyphenate

(PECL ps >= 1.1.1)

ps_hyphenateRelie un mot

Description

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

Relie le mot passé. ps_hyphenate() évalue la valeur hyphenminchars (fixé par ps_set_value()) et le paramètre hyphendic (fixé par ps_set_parameter()). hyphendict doit être fixé avant d'appeler cette fonction.

Cette fonction requiert que la configuration locale LC_CTYPE soit correctement faîte. Cela est fait lorsque l'extension est initialisée en utilisant les variables d'environnement. Sur les systèmes Unix, lisez les pages de manuel de locale pour plus d'informations.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

text ne devrait pas contenir de caractères non alpha. Les positions possibles pour les coupures sont retournées dans un tableau de nombre entier. Chaque nombre est la position du caractère dans text après que la liaison puisse avoir lieu.

Valeurs de retour

Un tableau d'entier indiquant la position des coupures possibles dans le texte ou false si une erreur survient.

Exemples

Exemple #1 Coupe un texte

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

L'exemple ci-dessus va afficher :

Ko-ordi-na-ten-sys-tem

Voir aussi

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