上周我想把一些简体字转换成繁体字。我找到了一个看似漂亮的贝壳单线,今天我发现有 20% 的错误率。
所以我做了一些研究。 mediawiki 代码库包含转换表,这些转换表考虑了简化正字法的特殊性质,并且有人已经编写了一个很好的辅助库,其中充满了虚拟类和函数,称为 mediawiki-zhconverter。所以看起来我可以有我的一句台词,我希望它看起来像这样,stconvert是我正在编写的脚本的名称:
$cat simplifiedstory | stconvert > traditionalstory
然而mediawiki完全是PHP的,我从来没有写过任何PHP,所以我不知道它是如何处理shell变量的。正如您在下面看到的,简单地将“$argv”放在字符串所在的位置并不能实现我的目标。
#!/usr/bin/php
<?php
define("MEDIAWIKI_PATH", "/home/a1/mediawiki-1.13.0/");
require_once "mediawiki-zhconverter.inc.php";
echo MediaWikiZhConverter::convert($argv, "zh-tw") , ",";
?>
答案1
你几乎已经拥有了。 $argv 是一个数组,类似于 perl。 $argv[0] 是脚本本身,就像 shell 中的 $0 或 perl 中的 $ARGV[0] 一样。 $argv[1] 将是传递给脚本的第一个参数,但您的用法可能会改变,因为您可以在 php 脚本中执行 cat 操作。假设您的 php 脚本是stconvert
,现在的用法是stconvert simplifiedstory > traditionalstory
。
#!/usr/bin/php
<?php
define("MEDIAWIKI_PATH", "/home/a1/mediawiki-1.13.0/");
require_once "mediawiki-zhconverter.inc.php";
$text = shell_exec("cat $argv[1]");
echo MediaWikiZhConverter::convert($text, "zh-tw") , ",";
?>