PHP Conference Kansai 2025

ps_hyphenate

(PECL ps >= 1.1.1)

ps_hyphenateHifeniza uma palavra

Descrição

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

Hifeniza a palavra passada. ps_hyphenate() avalia o valor hyphenminchars (definido por ps_set_value()) e o parâmetro hyphendict (definido por ps_set_parameter()). hyphendict deve ser definido antes de chamar esta função.

Esta função requer que a categoria de localidade LC_CTYPE seja definida corretamente. Isso é feito quando a extensão é inicializada usando as variáveis de ambiente. Em sistemas Unix, leia a página de manual de "locale" para mais informações.

Parâmetros

psdoc

Identificador de recurso do arquivo postscript conforme retornado por ps_new().

text

text não deve conter caracteres não alfabéticos. Posições possíveis para quebras são retornadas em um array de números inteiros. Cada número é a posição do caractere em text após o qual uma hifenização pode ocorrer.

Valor Retornado

Um array de inteiros indicando a posição de possíveis quebras no texto ou false em caso de falha.

Exemplos

Exemplo #1 Hifenizando um texto

<?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);
?>

O exemplo acima produzirá:

Ko-ordi-na-ten-sys-tem

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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