2012-08-06 29 views
2

之間的數據大大寫金額我有一個大的數據量進行操作,並建立一個表中的perl腳本。我想從PHP調用這個腳本。我通過列表數據,其中包含字符串,引號和各種令人不快的簡單通行證PHP和Perl

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

不會做。我想JSON的數據進行編碼,然後base64編碼的JSON和通過這樣的:

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

這是一個適當的方式,或是否有更好的辦法? perl腳本必須通過返回,stdout或其他方式將完成的表返回到PHP腳本。

回答

2

可以調用使用proc_open perl腳本。然後,您可以通過stdin將輸入提供給它,並從stdout中獲取輸出/錯誤。 Perl腳本將作爲管道運行。

這得到各地的臨時文件的任何混亂。

0

我將序列從PHP內容到一個文件,然後將其加載到Perl的。您可以使用CPAN模塊PHP::Serialization

+0

我該怎麼辦?就像passthru('./ path/to/pl'$ serializedStr'')中的序列化字符串一樣。空間,報價和其他一些混亂是什麼? – user974896 2012-08-06 17:25:34

+0

如果我不需要,我討厭寫給光盤 – user974896 2012-08-06 17:26:31

1

在PHP端,open a bidirectional pipe對Perl過程和寫入到它的管道。在Perl方面,從STDIN讀取。

要返回的數據,寫入stdout Perl編寫的。在PHP中,從管道讀取。

你不需要編碼。