如何在php中模拟浏览器来执行javascript文件?

时间:2014-04-20 21:01:25

标签: javascript php emulation

我有一个 php 文件,可以生成 html js 文件,这些文件会在浏览器中绘制图表。

但是由于这些文件必须由服务器端的php创建,所以我不能涉及浏览器。我想做的是,能够模拟浏览器并直接从php创建这些文件的图像,以便通过电子邮件发送给相应的部门。

我认为可以通过以下步骤完成:

  1. 某些可以从 Command Promt 运行并且参数为我的文件的可执行程序
  2. PHP可以向 Command Promt 发送命令,告诉它运行"创建的文件"使用该程序生成图像。
  3. 然后我会通过电子邮件发送该图片
  4. 可用性示例

    假设您在浏览器中运行extjs Web应用程序,对吧?没有用户交互,它可能会保持运行数天。现在,您无需执行任何操作,只需将CPU性能图的图像发送给测试部门。

    有谁知道这样做的最佳方式? 感谢

2 个答案:

答案 0 :(得分:2)

使用服务器端图形图像生成器。您不需要模拟浏览器然后返回服务器 - 它更复杂,更不可靠。

我在少数项目中使用了JPGraph(http://jpgraph.net) - 它可以在服务器端生成图形图像到一些临时目录中,然后你可以包含到电子邮件中或输出到客户端。如果您发现jpGraph不适合解决方案,请查看备选方案:

但是如果您仍然发现从客户端获取javascript输出并将其恢复到服务器是您的方法,那么您可能需要查看http://wkhtmltopdf.org/

答案 1 :(得分:0)

我找到了我想要的东西,即使它有点晚但仍然......

我正在使用phantomjs。真的很酷。您可以编写php文件并将其提供给phantomjs,它将创建图像 pdf ,就像您从浏览器屏幕截图一样。

这是phantomjs目录中的命令:

  

phantomjs " youJavascriptFile" "输出类型" "文件名" " 文件"

哪里

  • outputType可以是'字母'或' width x height'
  • 文件可以是服务器的php文件的http路径
  • youJavascriptFile是js文件,您可以使用此其他输入和一些幻像魔法来创建输出。