繁体   English   中英

从PHP读取服务器端JavaScript

[英]Read server-side JavaScript from PHP

我有一个服务器端 JavaScript使用的变量(字幕字符串)的JS库文件。 我可以从PHP中读取/解释它吗?

数据的路径不是问题,但PHP是否可以读取/使用JS变量。 目前我存储在JS文件和PHP中的相同变量包含明显的变化范围,使得变化不同步。 我已经尝试从服务器端 JS中读取PHP而没有高兴但是想知道是否 - 通过适当的解析 - 如果PHP可以提取/使用JS变量。

我重复所有涉及的数据是服务器端在同一台服务器上。 很抱歉,如果我之前错过了这个问题,但PHP / JS问题(即使是错误标题)似乎都是关于在客户端和服务器端进程之间传递数据 - 这不是我的情况。

后来 - 澄清:

s / s JavaScript是图像数据库的Web界面的一部分,我无法改变API。 它不支持创建电子邮件(用于文件请求),因此我必须通过PHP来实现。 工作范围/预算不能重写新的d / b界面,而是我们只需要能够发送电子邮件。 IOW,我意识到如果从头开始,你不会选择尝试这样做! 此外,我不认为我可以使用s / side AJAX来获取变量或执行PHP smtp邮件,因为JS环境似乎不是为HTML页面传递之前的s / s处理程度而设计的。

PHP可以通过V8js库与JavasScript交互

听起来你在JS代码中有配置值(即字幕)。

如果你想保持这种方式,我的建议是将配置本身拆分成一个离散的.JS文件,它只包含变量定义但不包含实际的JS代码。

然后你应该能够使用json_decode()在PHP中简单地解析它。 任务完成。

取决于格式。 如果您的文件接近JSON并且可以公开访问(或者至少在与PHP相同的服务器上),您可以执行以下操作:

文件test.js

var data = {
    'Hello': 'L-ghodwa it-tajba',
    'Bye':   'Caw',
}

文件reader.php

<?php

    $data = file_get_contents('test.js'); // or http://url.to/test.js
    $data = str_replace('var data = ', '', $data);
    $data = json_decode($data);
    print_r($data);

?>

这个系统也很有效率; 它是关于稍微操纵一个字符串并将其解析为JSON而不是拥有一个完整的JS解析器。 但是,您必须强制执行js文件的格式。

编辑:是的,好吧,看起来斯普德利在我的前几秒钟就拿到了。 基本上,我正在做他的建议。

编辑2:我一直在想,你可以简单地使用JSON文件。 这些必须包含JSON,因此格式已经存在; 并且您可以通过JS和PHP使用相同的文件而不会出现问题或事后发生。 顺便说一句,JSON文件以.json扩展名结尾。 您可能需要使用(Apache / htaccess)告诉您的网络服务器mimetype json是什么:

AddType application/json .json

我想客户端/服务器案例中的大多数答案都涉及JSON。 什么阻止你使用相同的方法,虽然服务器上运行的js脚本?

您可以将这些变量存储在JSON文件中,并让JS脚本和PHP脚本加载它们。 当然,您的PHP安装必须首先支持JSON。

如果你试图用PHP解析JS文件,你应该使用相当复杂的正则表达式,或者你应该创建一个允许JS脚本(例如Node)和PHP之间进行通信的API。

问题是,为什么你需要以这种方式做到这一点? 为什么不能以JS和PHP都可以使用的格式共享数据? 例如,JSON。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM