从PHP调用的perl脚本生成零字节大小的文件

时间:2012-06-01 14:23:50

标签: php perl

我正在调用外部Perl脚本将DXF文件转换为SVG,但是当从PHP调用脚本时,输出SVG文件始终为0字节。当从终端执行相同的命令时,输出SVG文件就可以了。

我正在通过PHP系统()执行命令,并尝试了exec()和popen(),但我总是有相同的结果。

dxf2svg.pl perl脚本源代码:http://pastebin.com/fE2BcUqE

我正在执行的

命令:

perl /path/dxf2svg.pl "/path_to_dxf/file.dxf" ">/output_path/file.dxf"

Outup路径可以写入PHP用户,所以这不是问题。

1 个答案:

答案 0 :(得分:2)

chat中调试后,发现该行

open (WRITECSS, ">output.css")or die("error in Writing CSSFile");

是罪魁祸首。由于从命令行运行脚本创建了具有错误写入权限的文件,因此脚本在此语句处死亡。由于错误未返回给PHP,因此错误是无声的。

解决方法是chmod输出CSS文件。

通过将STDERR从perl重定向到文件,并将错误报告变量$!添加到die语句来完成调试:

open STDERR, ">>", "somefile" or die $!;
open (WRITECSS, ">output.css")or die("error in Writing CSSFile: $!");