代码之家  ›  专栏  ›  技术社区  ›  Andrei Serdeliuc ॐ

PHP复杂用途-与外部设备交互

php
  •  0
  • Andrei Serdeliuc ॐ  · 技术社区  · 15 年前

    是否可以访问和控制PHP中的外部设备?

    例如,它是否能够改变USB风扇的速度或改变无线玩具车的方向。

    我试图超越Web开发,我想知道我使用的编程语言是否能够处理我的想法,或者我应该考虑改变环境。

    如果可能的话,我会非常感谢任何关于阅读材料的建议或其他语言的建议。

    谢谢!

    4 回复  |  直到 15 年前
        1
  •  3
  •   vartec    15 年前

    在Linux上,通过访问/dev/files肯定是可能的。但这会很乏味。我建议您切换到Python、Ruby、Lua或Java。

    例如,存在绑定 libusb 对于 Python , Ruby , Lua Java .

        2
  •  1
  •   nlaq    15 年前

    您可以编写一个外部程序,然后使用php的exec(或者它是系统?)函数与可执行文件或脚本交互。

    似乎是最明智的做法。另一个很好的选择是构建一个程序或脚本,该程序或脚本控制一个外部设备,该外部设备可以与通过HTTP公开的restfull类型的API通信,然后在php-land中使用lib-curl在两者之间进行来回的通信。相信我,在C++中构建一个基本的HTTP服务器,它可以被用PHP远程控制(或者说是JS)非常简单。

    等待

    我想我读错了问题;)

    如果你想进入真正酷的东西,我说你学习C++。C++是一门伟大的语言,它不仅打开了许多门,而且提供了良好的学习经验。C++有很多乐趣。

    回应评论

    在使用USB的情况下,它有点不同,也更复杂(因为USB有一个既定的协议等),但串行操作就像将数据转储到句柄中一样容易。

    你应该能够拿起C++来很快到达那个点。不管怎样,这都是一次很好的经历。

        3
  •  0
  •   Koraktor    15 年前

    这可以通过扩展实现,但不能通过纯PHP代码实现。我不知道有什么扩展可以做这样的事情,但我认为这是可能的。

        4
  •  0
  •   Ólafur Waage    15 年前

    如果您找到一个执行此操作的命令行工具,则可以使用 exec() , system() , passthru() shell_exec() (基于程序返回的输出)

    只要确定 escapeshellcmd() 如果您从公共网站访问此程序。