2

大量のデータに対して操作を実行し、テーブルを構築する perl スクリプトがあります。このスクリプトを PHP から呼び出したいと思います。文字列、引用符、およびあらゆる種類の厄介なものを含む表形式のデータを渡しているので、単純です

 passthru('./path/to/pl $var1 $var2');

しません。私はデータをJSONでエンコードし、次にJSONをbase64でエンコードして次のように渡すことを考えていました:

 passthru('./path/to/pl "$base64edJSON"');

これは適切な方法ですか、それともより良い方法がありますか? perl スクリプトは、return、stdout、またはその他の手段を使用して、完成したテーブルを PHP スクリプトに戻す必要があります。

4

3 に答える 3

2

proc_openを使用して perl スクリプトを呼び出すことができます。次に、標準入力を介して入力をフィードし、標準出力から出力/エラーを取得できます。Perl スクリプトはパイプとして実行されます。

これにより、一時ファイルの混乱を回避できます。

于 2012-08-06T17:26:55.643 に答える
1

PHP 側で、Perl プロセスへの双方向パイプを開き、そのパイプに書き込みます。Perl 側では、STDIN から読み取ります。

データを返すには、Perl で STDOUT に書き込みます。PHP では、パイプから読み取ります。

エンコーディングは必要ありません。

于 2012-08-06T17:27:51.710 に答える
0

内容を PHP からファイルにシリアル化し、それを Perl にロードします。CPAN モジュールPHP::Serializationを使用できます。

于 2012-08-06T17:23:22.933 に答える