1

我有一个服务器端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 环境似乎不是为那种程度的 s/s 处理预 HTML 页面交付而设计的。

4

5 回答 5

1

PHP 可以通过V8js 库与 JavaScript 交互

于 2012-10-23T22:01:53.143 回答
1

听起来您在 JS 代码中有配置值(即标题)。

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

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

于 2012-10-23T22:07:42.263 回答
1

取决于格式。如果您的文件接近 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 文件的格式。

编辑:是的,好吧,Spudley 似乎比我的领先几秒钟。基本上,我正在按照他的建议去做。

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

AddType application/json .json
于 2012-10-23T22:07:47.083 回答
1

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

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

于 2012-10-23T22:09:22.747 回答
0

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

问题是,为什么您需要以这种方式执行此操作?为什么不能以 JS 和 PHP 都可以使用的格式共享数据?例如,JSON。

于 2012-10-23T22:30:41.360 回答