[英]Can I execute js files via php?
情况如下:
我有php文件,它解析一个网页。 在该网页上是一个电话号码,它的数字是相互混合的。 将每个数字放在正确位置的唯一方法是使用一些JS函数(在客户端)。 所以,当我在linux控制台中执行那个php文件时,它给了我所需要的一切,除了js函数的结果(难怪 - JavaScript不是服务器端语言)。 所以我从JS看到的只是一个代码,我写的。
问题:我可以通过php执行js文件吗?
快速谷歌搜索的结果(terms = javascript engine php
)
我相信你会在google搜索上找到更多链接。
或者:
你说数字是乱码的,你需要用js“解读”它们。 你可以将解扰逻辑编码到PHP函数中并使用它吗? 肯定会为你省去很多麻烦,但是如果学习在php中使用js就是你所追求的,那么它就是一个完全不同的故事......
Zend教程:“ 在PHP中使用带有PECL和spidermonkey的javascript ”?
http://en.wikipedia.org/wiki/Comparison_of_Server-side_JavaScript_solutions
或者,PHP具有执行其他程序和检索其输出的简单功能(我使用它与GPG一起创建一个PHP文件管理器,可以在上载文件时对文件进行实时加密,并在下载时实时解密)
使用这些功能以及http://code.google.com/p/v8/,您应该能够解释任何JavaScript。
除非你知道有人在PHP中实现了Javascript引擎。
换句话说,可能不是。
如果没有某种浏览器仿真或将未解析的js传递给javascript的服务器端实现(可能是node.js?),您将无法执行它。
但是,页面是否每次使用相同的js函数来解读电话号码? 您应该能够读取错误的数字并使用PHP对其进行随机播放。
如果你准备做一些工作来构建你自己的JS运行时来使用它, Tim Whitlock用纯PHP编写了一个javascript标记器和解析器
node.js是服务器端...但完整的JS :)没有PHP,所以我不回答你的需求...
无论如何,这是一个例子:在客户端和服务器端的JS聊天: http : //chat.nodejs.org/
此外,并非每个主机都允许您使用v8引擎......
如果您有Javascript数据对象,并且需要将它们转换为PHP数组或从PHP数组转换它们,那么使用PHP的json_encode()
和json_decode()
函数就很容易了。
但实际上运行Javascript代码? 不,你不能。 您可能能够找到用PHP编写的JS解释器(其他一些答案指出了可能会或可能不会帮助您的链接),或者更可能使用您调用的服务器上的独立JS解释器来执行JS来自PHP。 但是,如果JS代码包含对浏览器DOM的引用(很有可能),那么这是另外一组问题,这几乎肯定会使它变得不可能。
鉴于您描述问题的方式,我认为最简单的解决方案就是将JS代码重新实现为PHP代码; 所提出的所有工作都不太可能适用于听起来像一个相当简单的实用程序代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.