【问题标题】:Call javascript function when PHP script runs (daily/automated)PHP脚本运行时调用javascript函数(每日/自动)
【发布时间】:2018-10-05 23:12:42
【问题描述】:

我们有一个每天运行的 PHP 脚本(已经可以正常运行),可为我们的员工生成 PDF 报告。现在在这个生成的 PDF 上,我们需要添加由 JavaScript 函数生成的附件/文件。在这个 JavaScript 函数中,我们处理从数据库加载的数据。这些数据每天都不同,并且每天都会在我们的服务器上保存一个附件文件。

在上面提到的 PHP 脚本中,我们需要包含那些由 JS 创建的文件/附件。

我的想法是每天在 PHP 脚本运行时运行一个 JS 函数。正如我在stackoverflow question 中发现的那样(参见 Vladimir 的回答),基本上不可能从 PHP 脚本运行 js。

我怎样才能做到这一点?我怎样才能确保每天在 PHP 脚本运行之前由 JS 生成文件/附件?
(例如,允许在凌晨 2 点生成 javascript 附件/文件。虽然 PHP 脚本可以在凌晨 3 点运行。它不必是完全相同的时间)。

任何建议都会有所帮助!

【问题讨论】:

  • 您的 JavaScript 代码通常在哪里运行?你提到的那个问题是关于从 PHP 调用 client side JavaScript,是的,这没有意义。但是,JavaScript 也可以在服务器 (Node.js) 上运行。
  • 我们没有 node.js 服务器。到目前为止,我有一个简单的 .html 文件,其中包含 javascript 函数并在页面在浏览器中运行时运行..
  • 好的,那么你能做的最好的事情就是使用无头浏览器或测试框架之类的东西来运行代码,但在我看来,它可能更容易获得它可以直接在 Node 中工作。
  • 设置节点服务器是不可能的(我会告诉你原因)。打算研究一下无头浏览器,我还没有这方面的经验。
  • 我想知道使用 PHP 中的 cURL 来调用特定的 URL 是否会为你做这件事。

标签: javascript php


【解决方案1】:

我会努力使用 curl 从 PHP 脚本中调用带有 curl 的 html 文件来运行 JS。

当然,这在很大程度上取决于 JS 正在做什么,但如果您可以访问这两个代码库,您应该能够通过将 curl 的响应保存到变量中来使其工作然后对其进行适当的解析和处理。

我知道这个答案是一个概括,但这是因为我们只知道 JS 和 PHP 需要如何交互。如果我们能获得更多细节,我会很乐意提供更具体的信息。

祝你好运,保重,

JB

【讨论】:

  • 除非我误解了什么; cURL 不是网络浏览器 - 它只会 ping URL 并(可选)获取响应,它不会在那里运行 JavaScript,它没有 JS 编译器。
  • 您好。不,你没有误会。 cUrl 不会运行 JS。很好理解。在不知道 JS 的确切性质的情况下,我只需要在这里吐口水。想到了两个解决方案: 1. 使用像 PhantomJS 或其他第三方应用程序,它像 cUrl 一样无头,但也解析 JS。 2. 使用基于服务器的 JS,如 nodejs 或类似的东西来完成整个事情。
  • 另外一件事,我要提一下,我的意思一点也不冒犯,但我真的不认为 JS 是这个项目的一个很好的解决方案。这就是为什么。 Javascript 不能将文件保存到本地机器,除了 cookie 或以下载或其他形式的浏览器确认。 AFAIK,javascript 无法连接到数据库。如您所知,这些限制是为了确保人们浏览互联网的安全。如果我处于你的位置,我会想办法将整个项目转移到 PHP 中,并在这种情况下放弃使用 JS。
  • 哦,通常情况下,我会同意,但我花了一段时间才弄清楚 OP 甚至 真正 在问什么;听起来他们想在 Google Charts 上扔一个 JSON,检索结果图像(我相信这将是一个 SVG)并将其嵌入到 PDF 中 - 我对 Google Charts 或其 API 不够熟悉,虽然能够给出一个全面的答案。
猜你喜欢
  • 2011-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-22
  • 2021-04-06
  • 2013-05-25
  • 2021-12-11
相关资源
最近更新 更多