我需要在网站的不同页面上访问我的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; ?>
没有变化,玩家消失了。这里发生了什么?
答案 0 :(得分:8)
您正在尝试将JavaScript对象实例存储到PHP变量中。那是不可能的。如果您必须拥有该对象,那么您可以做的最好的事情就是存储整个Javascript,包括<script>
标记,正确转义并回显它。但是如果你使用了很多地方,你应该把它作为另一个文件包含在内,而不是把它保存在PHP的内存中。