【发布时间】:2020-07-16 17:58:44
【问题描述】:
通常当您有一个.PHP 文件并且客户端请求它时,PHP 代码在服务器上运行,HTML 和JavaScript 被发送到客户端。
问题
是否可以让服务器请求网页(本地)并在服务器上同时运行PHP 代码和HTML 和JavaScript?我创建了一个 .html 文件,经过 3 秒的本地处理后,它会为给定视频的缩略图创建图像数据。
为什么
我需要为视频生成缩略图。我使用了共享主机,而我的主机提供商不支持ffmpeg。但是,您可以使用canvas 和JavaScript 生成缩略图。我已经给客户施加了很大的压力。如果可以的话,上传和下载时间会比使用客户端短很多。
尝试
我尝试过使用file_get_contents(),但它不运行代码(有道理)。有没有办法让它打开并运行x 秒然后抓取内容?
我尝试使用 curl 来获取使用 this function here 的文件。我相信它与我之前的尝试类似,因为它获取文件内容,但从不执行它们。
我最后一次尝试是使用new DOMDocument()。我什至无法加载页面。首先,我无法用video 标签解析它。它给出了这个错误:
Warning: DOMDocument::load(): Specification mandates value for attribute controls in
file:\path\to\html\document.html, line: 53 in C:\path\to\php\document.php on line 50
如果我要删除视频标签(这是必需的),我会在解析 JavaScript 时出错。所以这种尝试也没有奏效。
有没有办法让 PHP 在获取内容之前处理代码(用于服务器上的某些内容)x 秒?它将留出时间来生成缩略图数据。如果有另一种方法可以做到这一点,而无需在服务器上使用ffmpeg,那就太好了。
【问题讨论】:
-
看看stackoverflow.com/questions/21179522/…。希望这会有所帮助。
-
@Deepak,谢谢!这就是我目前正在做的事情。我只是在寻找一种在服务器上运行该脚本的方法,而不必在客户端上运行它以减少客户端的文件传输时间和压力。
-
我的建议当然不是一个好主意,但您是否考虑过使用隐藏 iframe 之类的东西?例如考虑谷歌登录。一个页面打开,你登录,它保存在某个地方,你使用 API 从它那里得到响应,现在你可以使用隐藏的 iframe 做类似的事情。
-
@MohsenNemati,好的,我没想到。你建议把它放在哪里?管理员用户何时提交视频?还是当视频显示普通用户时?就我而言,管理员用户几乎无法在客户端完成任何处理,这确实限制了我。
-
我会解释为答案。
标签: javascript php html html-parsing