先週、一部の簡体字を繁体字に変換したかったです。私が一つ見つけた美しく見えるシェルシングルライン、今日のエラー率が20%であることがわかりました。
だからちょっと調べてみました。 MediaWikiコードベースには、単純化されたスペルの特別な属性を考慮した変換テーブルが含まれており、誰かがmediawiki-zhconverterという仮想クラスと関数でいっぱいの素晴らしいヘルパーライブラリを作成しました。だから1行しか持てず、次のように見えたいです。 stconvertは私が作成しているスクリプトの名前です。
$cat simplifiedstory | stconvert > traditionalstory
しかし、メディアウィキは完全にPHPになっていて、私はPHPを書いたことがないので、シェル変数をどのように処理するのかわかりません。以下に示すように、単に文字列があるところに「$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] は、シェルの $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") , ",";
?>