【问题标题】:PHP Exec FunctionPHP 执行函数
【发布时间】:2014-09-09 17:43:17
【问题描述】:

我正在编写一个 PHP 脚本,它将运行 XLS 到 CSV 的转换。我正在使用exec(),但我无法让程序运行。我浏览了有关此主题的大多数 cmets 均无济于事。

<?php
    $pXCExe="C:Program Files (x86)\XLS to CSV\xls2csv.exe";
    $pXLSFileName="C:\TestExcell\vaca.xls";
    $pOutFileName="C:\TestExcell\vca.csv";
    $olines=0;
    $ecode=0;

    echo $R = exec($pXCExe.' "'. $pXLSFileName. '" "'. $pOutFileName .'"'.'"'/silent''"'.'"/fields=pipe'"', $olines, $ecode);

?>

【问题讨论】:

  • 我没有收到错误,但文件从未转换。
  • 你遗漏了很多代码。例如,$pXCExe 是什么,其他变量又是什么。另外,该命令在命令行上有效吗?
  • 您确定没有出错吗?也不在日志中?
  • 我会检查日志。实际上我还没有让它在 cmd 行上运行。我会试试的。 $pXCExe 是转换程序执行的路径。
  • 我已经让它通过命令行运行 - xls2csv.exe C:\TestExcell\mts.xlsx C:\TestExcell\ /OPEN=1 /SILENT /FIELDS=PIPE

标签: php csv xls


【解决方案1】:

由于程序路径包含空格,请确保在命令中引用它:

$pXCExe = '"C:\Program Files (x86)\XLS to CSV\xls2csv.exe"';

并且双引号内的反斜杠被视为转义字符,因此对于$pXLSFileName$pOutFileName,请勿使用双引号:

$pXLSFileName = 'C:\TestExcell\vaca.xls';
$pOutFileName = 'C:\TestExcell\vca.csv';

如果要保留双引号,请转义反斜杠:

$pXLSFileName = "C:\\TestExcell\\vaca.xls";
$pOutFileName = "C:\\TestExcell\\vca.csv";

【讨论】:

    猜你喜欢
    • 2016-04-11
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 2020-07-28
    • 2013-10-19
    相关资源
    最近更新 更多