過去に開発したPerl言語によるスクリプト(いわゆるCGI)をPHP化する必要に迫られ、とはいえ一部のサブルーチンはPerlで実行したかったので、以下メモを残します。
まずは実行したいPerl(sample.cgi)を用意する。
引数が「(大文字)ABC」ならば「OK」それ以外ならば「NG」を変数 $result に入れて読み込み元のPHPに返すという内容です。
#!/usr/bin/perl if($ARGV[0] eq 'ABC'){ $result = 'OK'; } else { $result = 'NG'; } print $result; exit;続いてCGIを読み込むPHPを用意します。
<?php $result = exec('/usr/bin/perl sample.cgi abc'); echo $result; ?>
※ 上記PHP(sample.php)とCGI(sample.cgi)は同じ階層にあり、Perlまでのパスは #!/usr/bin/perl の場合を想定しています。
※ 上記PHP内の引数は「abc」なので結果は「NG」が返されます。この「abc」を「ABC」に変更すると「OK」が返されます。
※ 引数が複数ある場合はabcに半角空白区切で続けます
例) 「abc」と「def」と「ghi」がある場合
sample.cgi abc def ghiのようにします