ps_hyphenate
(PECL ps >= 1.1.1)
ps_hyphenate — Hyphenates a word
Description
$psdoc
, string $text
)Hyphenates the passed word. ps_hyphenate() evaluates the value hyphenminchars (set by ps_set_value()) and the parameter hyphendict (set by ps_set_parameter()). hyphendict must be set before calling this function.
This function requires the locale category LC_CTYPE to be set properly. This is done when the extension is initialized by using the environment variables. On Unix systems read the man page of locale for more information.
Parameters
-
psdoc
-
Resource identifier of the postscript file as returned by ps_new().
-
text
-
text
should not contain any non alpha characters. Possible positions for breaks are returned in an array of interger numbers. Each number is the position of the char intext
after which a hyphenation can take place.
Return Values
An array of integers indicating the position of possible breaks in
the text or FALSE
on failure.
Examples
Example #1 Hyphennate a text
<?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);
?>
The above example will output:
Ko-ordi-na-ten-sys-tem
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Генерация нетекстовых MIME форматов
- Создание документов PostScript
- ps_add_bookmark
- ps_add_launchlink
- ps_add_locallink
- ps_add_note
- ps_add_pdflink
- ps_add_weblink
- ps_arc
- ps_arcn
- ps_begin_page
- ps_begin_pattern
- ps_begin_template
- ps_circle
- ps_clip
- ps_close_image
- ps_close
- ps_closepath_stroke
- ps_closepath
- ps_continue_text
- ps_curveto
- ps_delete
- ps_end_page
- ps_end_pattern
- ps_end_template
- ps_fill_stroke
- ps_fill
- ps_findfont
- ps_get_buffer
- ps_get_parameter
- ps_get_value
- ps_hyphenate
- ps_include_file
- ps_lineto
- ps_makespotcolor
- ps_moveto
- ps_new
- ps_open_file
- ps_open_image_file
- ps_open_image
- ps_open_memory_image
- ps_place_image
- ps_rect
- ps_restore
- ps_rotate
- ps_save
- ps_scale
- ps_set_border_color
- ps_set_border_dash
- ps_set_border_style
- ps_set_info
- ps_set_parameter
- ps_set_text_pos
- ps_set_value
- ps_setcolor
- ps_setdash
- ps_setflat
- ps_setfont
- ps_setgray
- ps_setlinecap
- ps_setlinejoin
- ps_setlinewidth
- ps_setmiterlimit
- ps_setoverprintmode
- ps_setpolydash
- ps_shading_pattern
- ps_shading
- ps_shfill
- ps_show_boxed
- ps_show_xy2
- ps_show_xy
- ps_show2
- ps_show
- ps_string_geometry
- ps_stringwidth
- ps_stroke
- ps_symbol_name
- ps_symbol_width
- ps_symbol
- ps_translate
Коментарии
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