Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在多个页面之间共享fsockopen()的返回值?_Php_Session - Fatal编程技术网

Php 如何在多个页面之间共享fsockopen()的返回值?

Php 如何在多个页面之间共享fsockopen()的返回值?,php,session,Php,Session,我在我的php脚本中使用到服务器的连接,用fsockopen()打开,我希望它在不同的页面之间共享,所以我序列化了它并将它保存在会话变量中,但这似乎不是一个好主意,因为当我这样做时,什么都不会发生。。。 甚至一个错误都没有。 问题是这个连接需要握手,所以我不能每次都重新连接 另一个问题是,fsockopen的超时时间是多少?或者,如果发生错误,连接是否保持活动状态。调用它的原始php脚本是否已关闭 编辑:// 我有一个脚本运行了很长时间,因此可以保持它的打开状态,但我的第一个问题是,我可以通过$

我在我的php脚本中使用到服务器的连接,用fsockopen()打开,我希望它在不同的页面之间共享,所以我序列化了它并将它保存在会话变量中,但这似乎不是一个好主意,因为当我这样做时,什么都不会发生。。。 甚至一个错误都没有。 问题是这个连接需要握手,所以我不能每次都重新连接

另一个问题是,fsockopen的超时时间是多少?或者,如果发生错误,连接是否保持活动状态。调用它的原始php脚本是否已关闭

编辑:// 我有一个脚本运行了很长时间,因此可以保持它的打开状态,但我的第一个问题是,我可以通过$会话共享句柄吗?如果可以,我需要序列化它吗?
因为如果我回显句柄,它就不是一个整数,您无法将其保存在会话数据中,当打开的PHP脚本返回时,进程“死亡”,套接字也随之消失。您可以保存句柄中的整数值,但在加载并运行下一页时,该整数值将不再有效。

您无法将其保存在会话数据中,当打开的PHP脚本返回时,进程将“终止”,套接字也随之终止。您可以保存句柄中的整数值,但在加载并运行下一页时,该整数值将不再有效。

fsockopen正在打开网络套接字

当打开该套接字的PHP脚本结束时,它打开的套接字将丢失:您不能从另一个脚本重新使用它们

如果希望多个不同的页面使用该套接字,那么除了为每个脚本重新打开它之外别无选择,即使这需要时间


另一个(复杂得多)解决方案可能是:

  • 一个在后台作为守护进程运行并连接到远程服务的脚本
  • 该脚本始终在运行(或者至少运行很长时间)
  • 其他脚本将信息发送到该守护进程,而不是尝试连接到该服务
  • 守护进程总是连接的,它将这些信息发送到它所连接的远程服务
这有点复杂,就像我说的。。。但它应该工作得很好:-)


不过,请注意,使用守护进程以及可能需要访问服务器命令行的所有操作:如果您仅从Apache运行PHP,您将无法(或没有那么好)完成所有这些操作。

fsockopen正在打开一个网络套接字

当打开该套接字的PHP脚本结束时,它打开的套接字将丢失:您不能从另一个脚本重新使用它们

如果希望多个不同的页面使用该套接字,那么除了为每个脚本重新打开它之外别无选择,即使这需要时间


另一个(复杂得多)解决方案可能是:

  • 一个在后台作为守护进程运行并连接到远程服务的脚本
  • 该脚本始终在运行(或者至少运行很长时间)
  • 其他脚本将信息发送到该守护进程,而不是尝试连接到该服务
  • 守护进程总是连接的,它将这些信息发送到它所连接的远程服务
这有点复杂,就像我说的。。。但它应该工作得很好:-)


不过,请注意,使用守护进程以及可能需要访问服务器命令行的所有操作:如果您仅从Apache运行PHP,您将无法(或不能很好地)完成所有这些操作。

您确定它是整数吗?不,我不是,我只是想指出,当创建页面退出时,在页面之间保存的对象是没有意义的。很抱歉不准确。你确定它是整数吗?不,我不是,我只是想指出,当创建页面退出时,在页面之间保存的对象是没有意义的。对不起,不准确。