通过PHP通过IE运行Javascript

时间:2010-10-08 12:05:40

标签: php javascript windows internet-explorer-8

我需要使用IE8在服务器端运行javascript代码 (javascript适用于activeX对象) 但是我需要从PHP命令行运行它。

简而言之,我将在2003 Windows服务器上安装apache + php,php将使用system()执行运行javascript页面的iexplore。

我想知道这是否在逻辑上可行,因为我可以看到一些陷阱:

  1. 如果没有用户登录,PHP可能无法执行iexplore。
  2. iexplore可能无法正确运行javascript以与ActiveX对象进行交互
  3. 当JS完成运行时,
  4. iexplore可能不会退出。
  5. 我会尽快考虑做一个小测试用例,但任何关于这个方法的指针都会被贬低。

    编辑:

    现在,我意识到这是一个关于做事的方式(阅读,错误),目标是从中央位置而不是客户端机器(这是JS来自的地方)打印Dymo Label打印机。 Dymo SDK提供了几种与打印机交互的方式,但我仍然在寻找使用纯PHP的方法。我认为可以使用他们的一个示例cli二进制文件。

2 个答案:

答案 0 :(得分:0)

确保更新Service Pack和AntiVirus定义。我可以在这里预见到许多潜在的安全问题。

请记住,IE中的JavaScript使用网页上下文运行。刷新/导航页面时,将擦除旧的JavaScript执行状态并开始新的状态。

这里有特定问题吗?

答案 1 :(得分:0)

Dymo是否有办法从命令行与它进行交互?如果是这样,您可以通过shell_exec()轻松地向其发送命令。 http://www.php.net/manual/en/function.shell-exec.php

当您能够通过命令行控制某些内容时,这通常是最简单的选项。有时您需要更多控制(例如,交互式命令行程序),有时您想要运行的程序甚至不是基于命令行的。在这些情况下,您可能需要proc_open()(http://www.php.net/manual/en/function.proc-open.php)或exec()(http://www.php.net) /manual/en/function.exec.php)

请确保如果您使用exec() 重定向输出!! 。如果不这样做,可能会导致程序无限期挂起。

从PHP手册:

  

注意:

     

如果使用此功能启动程序,为了使其在后台继续运行,必须将程序的输出重定向到文件或其他输出流。如果不这样做将导致PHP挂起,直到程序执行结束。