在 PHP 專案使用 OpenCC 開放中文轉換

安裝

安裝指令。

1
brew install opencc

下載專案。

1
git clone https://github.com/BYVoid/OpenCC.git

查看字典檔。

1
ls /usr/local/share/opencc/

使用指令轉換。

1
echo "简体中文" | opencc -c s2twp.json

實作

建立轉換函式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

function s2t($text)
{
$configFile = '/usr/local/share/opencc/s2twp.json';

$command = sprintf('echo %s | opencc -c %s', escapeshellarg($text), escapeshellarg($configFile));

$converted = shell_exec($command);

return trim($converted);
}

echo s2t('简体中文');

或是使用 symfony/process 套件,建立更安全的轉換函式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php

require 'vendor/autoload.php';

use Symfony\Component\Process\Process;

class TextConverter
{
public static function s2t($input)
{
$config = 's2twp.json';

$command = [
'opencc',
'-c',
$config,
];

$process = new Process($command);
$process->setInput(escapeshellarg($input));
$process->mustRun();
$output = $process->getOutput();

return $output ?: $input;
}
}

echo TextConverter::s2t('简体中文');

參考資料