从 php 中获取 js 值有两种方法:通过服务器端脚本,使用 javascript 的 eval() 函数执行 javascript 代码并访问其返回值。使用跨域通信(cors),启用 cors,使用 fetch api 发送请求,处理请求并返回 json 响应。
如何从 PHP 中获取 JS 值
从 PHP 中获取 JS 值主要有两种方法:
1. 通过服务器端脚本
这种方法需要在 PHP 脚本中使用 JavaScript 的 eval() 函数。该函数允许 PHP 脚本执行 JavaScript 代码并访问其返回值。
步骤:
- 创建一个 HTML 页面,其中包含一个 JavaScript 变量。
- 将 HTML 页面作为字符串加载到 PHP 脚本中。
- 使用 eval() 函数执行 JavaScript 代码,并将结果存储在一个 PHP 变量中。
示例代码:
<?php // 加载 HTML 页面
$html = file_get_contents('page.html');
// 提取 JavaScript 变量
preg_match('/var myJSVar = (.*?);/', $html, $matches);
$jsValue = $matches[1];
// 输出结果
echo $jsValue;
?>
2. 使用跨域通信(CORS)
这种方法不需要在 PHP 脚本中使用 JavaScript 的 eval() 函数。它使用跨域资源共享 (CORS) 来允许客户端 JavaScript 脚本从 PHP 服务器获取数据。
步骤:
- 在 PHP 服务器中启用 CORS。
- 在客户端 JavaScript 脚本中使用 Fetch API 发送请求。
- 在 PHP 服务器中处理请求并返回 JSON 响应。
示例代码:
PHP 服务器端:
<?php // 启用 CORS
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
header('Access-Control-Allow-Headers: Content-Type');
// 处理请求
$data = ['jsValue' => 'someValue'];
echo json_encode($data);
?>
客户端 JavaScript:
fetch('http://example.com/getjsvalue.php')
.then(response => response.json())
.then(data => {
console.log(data.jsValue);
});