パイプのテキストを処理する単純なPHPスクリプトの作成

パイプのテキストを処理する単純なPHPスクリプトの作成

先週、一部の簡体字を繁体字に変換したかったです。私が一つ見つけた美しく見えるシェルシングルライン、今日のエラー率が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") , ",";

?>

関連情報