Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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 选择不同歌曲时播放列表出现问题_Php_Html_Xml_Flash - Fatal编程技术网

Php 选择不同歌曲时播放列表出现问题

Php 选择不同歌曲时播放列表出现问题,php,html,xml,flash,Php,Html,Xml,Flash,实际上,在我的网站www.musicking.in中,当用户选择歌曲时,将打开一个播放器窗口,该窗口将访问相应的选定歌曲xml播放列表,播放器将播放这些歌曲 实际上它工作得很好。 但有时问题是,当如此多的用户访问的播放器没有播放选定的歌曲时,或者是播放他以前选择的歌曲,或者什么都没有 请帮帮我 {我的播放器代码} <?php if(isset($_POST["song"])&& $_POST['song'] != "") { $song = $_P

实际上,在我的网站www.musicking.in中,当用户选择歌曲时,将打开一个播放器窗口,该窗口将访问相应的选定歌曲xml播放列表,播放器将播放这些歌曲

实际上它工作得很好。 但有时问题是,当如此多的用户访问的播放器没有播放选定的歌曲时,或者是播放他以前选择的歌曲,或者什么都没有

请帮帮我

{我的播放器代码}

<?php
if(isset($_POST["song"])&& $_POST['song'] != "") 
    {
        $song = $_POST["song"];
    }
    else {$song=array();} 

$dom = new DOMDocument("1.0");
// display document in browser as plain text 
// for readability purposes

// create root element
$root = $dom->createElement("playlist");
$dom->appendChild($root);
$root->setAttribute('version', "1");
$root->setAttribute('xmlns', "http://xspf.org/ns/0/");
$rootnext = $dom->createElement("trackList");
$root->appendChild($rootnext);
foreach ($song as $counter) {
    $tokens = ",";
    $tokenized = strtok($counter, $tokens);
// create child element

$song = $dom->createElement("track");
$rootnext->appendChild($song);
$song1 = $dom->createElement("creator");
$song->appendChild($song1);
$text = $dom->createTextNode("www.musicking.in");
$song1->appendChild($text); 
$song1 = $dom->createElement("title");
$song->appendChild($song1);
// create text node
$text = $dom->createTextNode($tokenized);
$song1->appendChild($text); 
$tokenized = strtok($tokens);
$song1 = $dom->createElement("location");
$song->appendChild($song1);
$text = $dom->createTextNode($tokenized);
$song1->appendChild($text); 

}
// save 
$dom->save("playlist.xml");
?>
<object data="musicplayer.swf?autostart=true&playlist=playlist.xml" type="application/x-shockwave-flash" width="400" height="300"><param name="movie" value="musicplayer.swf?autostart=true&playlist=playlist.xml"/></object>




{sample playlist.xml}

<?xml version="1.0"?>
<playlist xmlns="http://xspf.org/ns/0/" version="1"><trackList><track><creator>www.musicking.in</creator><title>Ey Yavo </title><location>/telugusongs/prayanam/Ey Yavo.mp3</location></track><track><creator>www.musicking.in</creator><title>Meghamaa </title><location>/telugusongs/prayanam/Meghamaa.mp3</location></track><track><creator>www.musicking.in</creator><title>Nuvvu Entha </title><location>/telugusongs/prayanam/Nuvvu Entha.mp3</location></track></trackList></playlist>

{sample playlist.xml}
www.musicking.inEy Yavo/telugusongs/prayanam/Ey Yavo.mp3www.musicking.inmeghama/telugusongs/prayanam/meghama.mp3www.musicking.innuvu-Entha/telugusongs/prayanam/nuvu-Entha.mp3

看起来您总是使用playlist.xml文件,因此,如果有10000名访问者,单个文件将被覆盖10k次。通常没有问题,但互联网速度很慢,因此如果单击您的站点,就会生成xml并加载swf,然后使用xml。它会有延迟,如果一个玩家在加载另一个玩家之前单击并创建xml,可能会出现问题。 我建议您使用可变文件名(可以是随机文件名)
您可能需要一次又一次地清理旧文件,这里有一个快速修复方法,但您确实需要仔细考虑

在该文件中只保留以下内容:

if(isset($_POST["song"])&& $_POST['song'] != "") 
    {
        $song = $_POST["song"];
    }
    else {$song=array();} 
<object data="musicplayer.swf?autostart=true&playlist=playlist.php?song=<?=$song; ?>"      type="application/x-shockwave-flash" width="400" height="300"><param name="movie"   value="musicplayer.swf?autostart=true&playlist=playlist.php?song=<?=$song; ?>"/></object>

这只是一个非常快速的修复,我不能保证它会工作,因为它取决于你的音乐播放器如何读取文件。但这是你想走的路。您想根据歌曲参数生成播放列表文件,并将其回显到浏览器。

您确定生成XML有问题吗?这些清单是不是列错了?为什么要将其保存到文件中?也许问题就在那里?那我该怎么办?除了保存到文件中,我还能做什么?请帮助我…………你能帮我创建变量文件名吗?我不知道怎么做。你也可以完全随机,但我真的不喜欢这样。我更喜欢的一种解决方案是:$string=explode(“,microtime())$字符串=$string[1]。“-”$字符串[0];然后in$string是一个包含非常详细的startpoint的字符串,因此我认为不可能有两个用户干扰,您可以通过时间戳相对轻松地清理旧文件,我必须使用这个$string=explode(“,microtime()”)$字符串=$string[1]。“-”$字符串[0];将其直接放在“//save”之后,并将以下行更改为:$dom->save($string);然后更换工作正常但不完美的。。。。。。。当我选择其他电影歌曲时,它会显示以前选择的歌曲
if(isset($_GET["song"])&& $_GET['song'] != "") 
    {
        $song = $_GET["song"];
    }
    else {$song=array();}

....old generation code....
// Instead of saving it now, you just echo it. 
echo $dom->saveXML();