Php 在没有会话的情况下跨页面存储变量

Php 在没有会话的情况下跨页面存储变量,php,temp,Php,Temp,我正在编写一些使用XML进行机器间通信的代码。连接的设备将不支持会话。我需要在没有会话支持的情况下跨页面工作的PHP变量 我在几个地方用过 file_put_contents($file,$content) 这是可行的,但当我完成时,这将导致大量的磁盘读写 此外,阅读php手册php://fd 及php://temp 我不能让它工作。 我尝试过很多方法,但不明白它是如何工作的。此外,这些方法中的一些是随意的,一旦被阅读,它们就消失了。我知道一旦我把它读作变量,我就可以把它写回去php://t

我正在编写一些使用XML进行机器间通信的代码。连接的设备将不支持会话。我需要在没有会话支持的情况下跨页面工作的PHP变量

我在几个地方用过

file_put_contents($file,$content)
这是可行的,但当我完成时,这将导致大量的磁盘读写

此外,阅读php手册php://fd 及php://temp 我不能让它工作。

我尝试过很多方法,但不明白它是如何工作的。此外,这些方法中的一些是随意的,一旦被阅读,它们就消失了。我知道一旦我把它读作变量,我就可以把它写回去php://temp 或php://fd 供以后在另一页上使用

也许有更好的方法来满足我的需求


我每页大约有10次磁盘访问,这肯定会降低速度。每个磁盘访问都有一个大约一个单词长度的字符串,因此向磁盘写入和从磁盘读取数据似乎很疯狂

问题似乎在于所讨论的用户代理不支持cookie(正如您所说,它们不是web浏览器),也不是说它们不支持“会话”。毕竟,会话是服务器端的

。。。会话依赖于cookie如果未存储cookie,则会话将丢失

会话不需要使用cookies。对于会话,cookie“只是”用于传播“会话id”。使用cookies是默认的、首选的和最安全的方法,但它不是唯一的方法

“会话id”(存储为
SID
常量的一部分)可以作为URL参数或POST数据传递

配置设置
会话。使用_cookies
会话。只能使用_cookies
可以禁用(即设置为“0”),以便PHP甚至不会尝试设置会话cookie。然后,您可以启用
会话。使用PHP的\u trans\u sid
(即设置为“1”)自动重写URL以包含必要的“会话id”,或手动使用
sid
常量来构造URL

当PHP接收到会话id时,在cookie、URL参数或POST数据中,它将在调用
session\u start()
时恢复会话。不需要cookie

参考:


我每页大约有10次磁盘访问,这肯定会降低速度


每页请求10次磁盘访问实际上并没有那么多,而且不太可能影响性能。默认的PHP会话处理程序使用“文件”,因此这也会导致磁盘访问,尽管我认为如果数据很小,每个用户会话可能只有1次。

问题似乎在于所讨论的用户代理不支持cookie(如您所说,它们不是web浏览器),而不是它们不支持“会话”。毕竟,会话是服务器端的

。。。会话依赖于cookie如果未存储cookie,则会话将丢失

会话不需要使用cookies。对于会话,cookie“只是”用于传播“会话id”。使用cookies是默认的、首选的和最安全的方法,但它不是唯一的方法

“会话id”(存储为
SID
常量的一部分)可以作为URL参数或POST数据传递

配置设置
会话。使用_cookies
会话。只能使用_cookies
可以禁用(即设置为“0”),以便PHP甚至不会尝试设置会话cookie。然后,您可以启用
会话。使用PHP的\u trans\u sid
(即设置为“1”)自动重写URL以包含必要的“会话id”,或手动使用
sid
常量来构造URL

当PHP接收到会话id时,在cookie、URL参数或POST数据中,它将在调用
session\u start()
时恢复会话。不需要cookie

参考:


我每页大约有10次磁盘访问,这肯定会降低速度


每页请求10次磁盘访问实际上并没有那么多,而且不太可能影响性能。默认的PHP会话处理程序使用“文件”,因此这也会导致磁盘访问,尽管我认为如果数据很小,每个用户会话可能只有1次。

您所说的“连接的设备将不支持会话”是什么意思?会话是服务器/php特性,而不是客户端特性。请在你的问题中包含你想做什么的详细描述。我反复使用php会话进行测试。我让每一页写下会话变量,但它们并没有保存。我记得会话依赖于cookies,如果没有存储cookie,则会话将丢失。我不想再诊断会话,因为它们不是web浏览器,它们的行为不同。你说的“连接的设备不支持会话”是什么意思?会话是服务器/php特性,而不是客户端特性。请在你的问题中包含你想做什么的详细描述。我反复使用php会话进行测试。我让每一页写下会话变量,但它们并没有保存。我记得会话依赖于cookies,如果没有存储cookie,则会话将丢失。我不再希望诊断会话,因为它们不是web浏览器,它们的行为不同。