ps_hyphenate

(PECL ps >= 1.1.1)

ps_hyphenate对单词进行连字符处理

描述

ps_hyphenate(资源 $psdoc, 字符串 $text): 数组|false

对传递的单词进行连字符处理。 ps_hyphenate() 会评估 hyphenminchars 的值(由 ps_set_value() 设置)和 hyphendict 参数(由 ps_set_parameter() 设置)。hyphendict 必须在调用此函数之前设置。

此函数要求 LC_CTYPE 的区域设置类别设置正确。这在扩展初始化时通过使用环境变量来完成。在 Unix 系统上,请阅读 locale 的手册页以了解更多信息。

参数

psdoc

ps_new() 返回的 PostScript 文件的资源标识符。

text

text 不应包含任何非字母字符。可能的断点位置将返回在一个整数数组中。每个数字都是 text 中的字符位置,在该位置之后可以进行连字符处理。

返回值

一个整数数组,指示文本中可能断点的位置,或在失败时为 false

示例

示例 #1 对文本进行连字符处理

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

上面的示例将输出

Ko-ordi-na-ten-sys-tem

参见

添加说明

用户贡献说明 1 说明

1manfactory at gmail dot com
7 年前
上面的示例不能正确处理德语变音符号 (äöü)。

我必须执行以下操作才能使其正常工作。

setlocale (LC_CTYPE , "de_DE.iso88591"); # 它不适用于 "de_DE.utf8",当然您的系统应该运行此区域设置

$hyphens = ps_hyphenate($psdoc, utf8_decode($word)); # 仅当您的源代码使用 UTF8 编码时才使用

for($i=0; $i<mb_strlen($word); $i++) { # 为安全起见

echo utf8_encode($word[$i]); # 同样,仅当您的代码使用 UTF8 时才使用
To Top