在 php 中获取 javascript 值有三种方法:使用 ajax 通过 $_post 接收值。使用 json 通过 json_decode 解析为对象或数组。使用 websockets 处理 websocket 连接并接收数据。
如何在 PHP 中获取 JavaScript 值
在 PHP 和 JavaScript 中传递数据是常见场景。可以通过以下方法在 PHP 中获取 JavaScript 值:
1. 使用 AJAX
AJAX(异步 JavaScript 和 XML)允许在不重新加载页面的情况下在客户端和服务器之间交换数据。以下示例演示了如何使用 AJAX 从 JavaScript 将值发送到 PHP 服务器端:
立即学习“PHP免费学习笔记(深入)”;
// JavaScript 代码
var value = "my_value";
var xhr = new XMLHttpRequest();
xhr.open("POST", "/ajax-handler.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("value=" + value);
然后,在 PHP 中使用 $_POST['value'] 接收值:
// PHP 代码
if ($_POST) {
$value = $_POST['value'];
}
2. 使用 JSON
JSON(JavaScript 对象表示法)是一种将数据表示为字符串的格式。以下示例演示了如何使用 JSON 从 JavaScript 将值发送到 PHP 服务器端:
// JavaScript 代码
var value = "my_value";
var data = JSON.stringify({value: value});
var xhr = new XMLHttpRequest();
xhr.open("POST", "/ajax-handler.php", true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(data);
然后,在 PHP 中使用 json_decode() 函数将 JSON 字符串解析为 PHP 对象或数组:
// PHP 代码
if ($_POST) {
$data = json_decode($_POST['data']);
$value = $data->value;
}
3. 使用 WebSockets
WebSockets 提供了一个双向通信通道,允许客户端和服务器实时交换数据。以下示例演示了如何使用 WebSockets 从 JavaScript 将值发送到 PHP 服务器端:
// JavaScript 代码
var ws = new WebSocket("ws://localhost:8080");
ws.onopen = function() {
ws.send("my_value");
};
然后,在 PHP 中使用 WebSocketServer 类处理 WebSocket 连接和接收数据:
// PHP 代码
use RatchetMessageComponentInterface;
use RatchetConnectionInterface;
class MyWebSocketServer implements MessageComponentInterface {
public function onOpen(ConnectionInterface $conn) {
}
public function onMessage(ConnectionInterface $conn, $msg) {
// 处理消息 $msg
}
public function onClose(ConnectionInterface $conn) {
}
}