从用户生成的li列表中的ahref链接创建数组

时间:2016-08-24 18:41:24

标签: javascript php jquery

我正在编写一个程序,在该程序中,用户可以将.wav文件拖放到播放列表容器中。然后,他们可以按照播放列表容器中的顺序播放所有这些文件。现在我正在制作将所有这些.wav文件合并到一个文件中的保存功能,并将其保存到特定文件夹中。但我目前仍然在检索播放列表容器中的所有文件。

下面我发布了最相关的代码:

当用户将一些项目添加到播放列表中时,它看起来像这样:

<ul class="playlist-container connectedSortable links ui-sortable pt-container">
 <li class="audiofile im franklin 0x048209BE ui-sortable-handle" id="[franklin]_[0x048209BE]_im.wav" style="position: relative; left: 0px; top: 0px;">
   <a href="audio/[franklin]_[0x048209BE]_im.wav" class="mainaudiolink pt-link" target="audiotesting" data-pushtape-index="0"></a>
 </li>
 <li class="audiofile following franklin 0x048209BE ui-sortable-handle" id="[franklin]_[0x048209BE]_following.wav" style="position: relative; left: 0px; top: 0px;">
   <a href="audio/[franklin]_[0x048209BE]_following.wav" class="mainaudiolink pt-link" target="audiotesting" data-pushtape-index="1"></a>
 </li>
 <li class="audiofile mike franklin 0x048209BE ui-sortable-handle" id="[franklin]_[0x048209BE]_mike.wav" style="position: relative; left: 0px; top: 0px;">
   <a href="audio/[franklin]_[0x048209BE]_mike.wav" class="mainaudiolink pt-link" target="audiotesting" data-pushtape-index="2"></a>
 </li>
</ul>

现在,我成功地测试了脚本的组合(加入),通过硬编码如下:

<?php
//Select wav files
$wStart = "../audio/[spacer]_[tools]_onesecond.wav";
$wEnd = "../audio/[spacer]_[tools]_onesecond.wav";
$w1 = "../audio/[franklin]_[0x048209BE]_following.wav";
$w2 = "../audio/[franklin]_[0x048209BE]_an.wav";
$w3 = "../audio/[franklin]_[0x048209BE]_architect.wav";

//load wav files
$wFiles = array($wStart,$w1,$w2,$w3,$wEnd);
?>

现在我得到的问题是如何让它从播放列表容器中检索它以便我得到这样的东西:

<?php
//Select wav files
$wStart = "../audio/[spacer]_[tools]_onesecond.wav";
$wEnd = "../audio/[spacer]_[tools]_onesecond.wav";
$wRetrievedAudioFiles = '"File1" . "File2" etc';


//load wav files
$wFiles = array($wStart,$wRetrievedAudioFiles,$wEnd);
?>
PS:我知道最后一段代码可能无法按照它的方式工作,但我希望很清楚我想要实现的目标。 PS2:我忘了提到HTML部分位于根目录中名为index.php的文件中。 wav的加入通过文件ROOT/audio_saved/wavedit.php

进行

1 个答案:

答案 0 :(得分:0)

$files = scandir ('../audio/'); // gets all files

现在过滤掉那些有意义的东西 $files = array_filter($files, function ($f) { return preg_match('/\[franklin\]_\[0x048209BE\].*\.wav/', $f);}) === 1;

需要在目录前缀中添加回来 $files = array_map(function ($f) { return '../audio/'.$f; }, $files);

最后,将spacer wav文件添加到开头和结尾

$files[] = '../audio/[spacer]_[tools]_onesecond.wav'; array_unshift($files, '../audio/[spacer]_[tools]_onesecond.wav');

$files应该有你需要的东西,虽然我没有在这里测试代码。