通过fopen访问PHP中的Arduino串行监视器输出时会出现权限被拒绝的错误

通过fopen访问PHP中的Arduino串行监视器输出时会出现权限被拒绝的错误,php,serial-port,fopen,arduino-uno,arduino-ide,Php,Serial Port,Fopen,Arduino Uno,Arduino Ide,我的代码如下 "Warning: fopen(com3): failed to open stream: Permission denied in D:\XAMP\htdocs\Backend\arduino.php on line 4" 所有参数都正确(或者我认为正确),端口为COM3,波特率也正确。其余的代码我不知道,只是从互联网上下载的。Arduino和PHP集成的新功能。指引我。谢谢使用dio_open解决了这个问题 您必须首先下载dio_开放表单的扩展 提取dll文件并将其添

我的代码如下

 "Warning: fopen(com3): failed to open stream: Permission denied in D:\XAMP\htdocs\Backend\arduino.php on line 4"


所有参数都正确(或者我认为正确),端口为COM3,波特率也正确。其余的代码我不知道,只是从互联网上下载的。Arduino和PHP集成的新功能。指引我。谢谢

使用dio_open解决了这个问题

  • 您必须首先下载dio_开放表单的扩展

  • 提取dll文件并将其添加到XAMP\php\ext

  • 编辑php.ini文件并在那里添加扩展名
最终代码如下所示:

<?php
    exec("mode COM3 BAUD=9600 PARITY=N data=8 stop=1 xon=off");

    $fp = fopen("com3", "r"); 
    if (!$fp) {
        echo "Not open";
    } else {
        $string = fgets($fp);
        echo $string;
        fclose($fp); 
    }
?>


请更好地描述您已经尝试过的内容。请尝试使用管理员权限运行Xampp。右键单击XAMPP,然后作为运行Admin@Nevermore以管理员身份运行没有帮助。
<?php
  ini_set("display_errors", "1");
  error_reporting(E_ALL);
  exec("mode COM3 BAUD=9600 PARITY=N data=8 stop=1 xon=off");

  $fd =  _open('com3', O_RDWR);

  if (!$fd) {
    echo "Not open";
  } else {
  $string = dio_read($fd,1024);
  echo $string;
  }
  dio_close($fd);
?>