gpt4 book ai didi

PHP 不适用于 shell_exec()、system() 或 passthru()

转载 作者:搜寻专家 更新时间:2023-10-31 21:14:57 24 4
gpt4 key购买 nike

我正在尝试从文件夹中读取最新的文件。找到最新文件后,我逐行读取并使用条码打码软件在条码打印机上打印。此条码打印机是我服务器上的默认打印机。

这是我的 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 脚本中却不行。程序挂了。什么都没发生。如果我评论直通线路,一切都很好。程序执行。

到目前为止,这是我尝试过的:

  • 检查 PHP 是否在安全模式下运行。不是。
  • 关闭 Windows 防火墙。
  • 我已经运行命令calcs/g BarcodeGenerator.exe everyone:F
  • 我已将可执行文件和相关文件复制到 wamp\www 文件夹中。上面的代码(坏主意,但我还是做了)并重新计算。
  • 我已将 UAC 设置更改为最低
  • 目前我的系统上没有运行防病毒软件。
  • 我也尝试过 system()shell_exec()exec()
  • 我试过打开安全模式并将上述目录放在 safe_mode_include_dir
  • 我试过用单引号 (') 替换双引号 (")。
  • 我已尝试提供完整路径 (C:\\wamp\\www\\)

命令在命令提示符下运行良好。

那么,有没有办法在PHP下以管理员身份运行shell_exec命令呢?它似乎根本不想运行可执行文件(不仅是这个)。我在 Windows 7 上运行 WAMP

例如,shell_exec('dir') 可以正常工作,但 shell_exec('java') 不能。为什么不呢?

最佳答案

因为你不能运行任何可执行文件,比如 Java,这肯定是一个权限问题。解决方案虽然出于安全原因不推荐用于生产服务器,但以管理员身份运行您的 WAMP 服务器。

参见 this link有关如何操作的详细信息。

关于PHP 不适用于 shell_exec()、system() 或 passthru(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11005831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com