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