如果我将obect(jw播放器)存储在$_SESSION中,它就会消失


an obect (jw player) disappears if I store it in $_SESSION

我需要访问网站不同页面上的JW Player对象来加载播放列表。

所以我加了一行代码,玩家就消失了!

<?php $_SESSION['theJwPlayer'] = jwplayer; ?>

我在任何需要访问$_SESSION:的页面顶部使用以下内容

session_start();

以下是播放器的创建,这在一周多的时间里都很好,除了最后一行代码:

<script type="text/javascript">
 jwplayer('mediaplayer').setup({
       'flashplayer': 'http://localhost/theWebsite/jwplayer/player.swf',
       'id': 'playerID',
       'width': '480',
       'height': '270',
       'file':  'http://localhost/theWebsite/videos/moto_sounds.flv',
       'image':   'http://localhost/theWebsite/images/banner2.jpg'
   });

 // now save the player in a session variable
 <?php $_SESSION['theJwPlayer'] = jwplayer; ?>
</script>

如果我简单地删除将播放器存储在_SESSION数组中的那一行php代码,那么播放器的网页就会恢复正常,就像一周多以来一样,稳定,JW播放器就会出现,没有问题。但加上这一行,玩家就会消失:

我认为会话会自动序列化对象?为什么这一行代码正在"消失"我的jwplayer对象
我试着在jwplayer之前添加$,就像在中一样

<?php $_SESSION['theJwPlayer'] = $jwplayer; ?>

没有变化,玩家消失了。这里发生了什么?

您正试图将JavaScript对象实例存储到PHP变量中。这是不可能的。如果您必须拥有该对象,那么您可以做的最好的事情就是存储整个Javascript,包括<script>标记,正确地转义,并将其回显。但是,如果你使用了很多地方,你应该把它作为另一个文件来包含,而不是把它保存在PHP的内存中。