파이프의 텍스트를 처리하는 간단한 PHP 스크립트 만들기

파이프의 텍스트를 처리하는 간단한 PHP 스크립트 만들기

지난주에는 일부 간체자를 번체자로 변환하고 싶었습니다. 내가 하나 찾았어아름답게 보이는 쉘 싱글 라인, 오늘 오류율이 20%인 것으로 나타났습니다.

그래서 좀 조사를 해봤습니다. 미디어위키 코드 베이스에는 단순화된 철자법의 특별한 속성을 고려한 변환 테이블이 포함되어 있으며 누군가 mediawiki-zhconverter라는 가상 클래스와 함수로 가득 찬 멋진 도우미 라이브러리를 작성했습니다. 그래서 한 줄만 가질 수 있고, 다음과 같이 보이길 원합니다. 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") , ",";

?>

관련 정보