我正在尝试从该文件夹中读取最新文件。找到最新文件后,我正在逐行阅读并使用条形码Overprinter软件将其打印在条形码打印机上。此条形码打印机是我服务器上的默认打印机。
这是我的PHP代码:
<?php
$files = glob('C:\barcode\*.*');
$files = array_combine($files, array_map('filectime', $files));
arsort($files);
echo key($files); // for testing
$handle = @fopen(key($files), "r");
if ($handle) {
while (($buffer = fgets($handle, 4096)) !== false) {
echo $buffer; // for testing
$retval=passthru("BarcodeGenerator.exe ".$buffer.",,Code128,0");
// based on http://www.free-barcode.com/CommandLineBarcode.htm
echo $retval;
}
if (!feof($handle)) {
echo "Error:\n";
}
fclose($handle);
}
?>
上面的命令行在我的命令行提示符下运行正常,但它不在php脚本中。 该程序挂起。什么都没发生。如果我评论passthru线,一切都很好。程序执行。
这是我到目前为止所尝试的内容:
calcs /g BarcodeGenerator.exe everyone:F
system()
,shell_exec()
和exec()
safe_mode_include_dir
"
)替换双引号('
)。 C:\\wamp\\www\\
)命令在命令提示符下正常运行。
那么,有没有办法在PHP下以管理员身份运行shell_exec
命令?它似乎根本不想运行可执行文件(不仅仅是这个)。我正在WAMP
上运行Windows 7
。
例如,shell_exec('dir')
工作正常,但shell_exec('java')
没有。为什么不呢?
答案 0 :(得分:2)
由于您无法运行任何可执行文件,例如Java,因此这绝对是一个权限问题。由于安全性,该解决方案虽然不建议用于生产服务器,但是以管理员身份运行WAMP服务器。
有关如何操作的详细信息,请参阅this link。