我調用外部Perl腳本將DXF文件轉換爲SVG,但是當從PHP調用腳本時,輸出SVG文件始終爲0字節。當從終端執行相同的命令時,輸出SVG文件是OK的。我正在通過PHP系統()執行命令,並嘗試exec()和popen(),但我總是有相同的結果。從PHP調用的perl腳本生成零字節大小的文件
dxf2svg.pl perl腳本代碼:http://pastebin.com/fE2BcUqE
命令,我執行:
perl /path/dxf2svg.pl "/path_to_dxf/file.dxf" ">/output_path/file.dxf"
Outup路徑是寫PHP的用戶,所以這不是問題。
這是事實,問題是在PHP腳本:
調試是由Perl的重定向
STDERR
到一個文件,並添加錯誤報告變量$!
到die
語句來完成的。你也可以展示它嗎? – Leri一個猜測是,你的包含'MODE'的怪異公開聲明會讓事情變得糟糕。即PHP將其轉變爲重定向,並在perl腳本完成後覆蓋該文件。但是,*應該*導致你的Perl腳本死掉,因爲它無法打開一個未定義的文件名。 – TLP