如何在 php 中动态创建 html <audio> 标签

我正在尝试读取<audio>PHP 中的 html标记,但它是动态创建的


这是网址!我用来阅读


$dom = new DOMDocument();

@$dom->loadHTML($html);

foreach (iterator_to_array($dom->getElementsByTagName('audio')) as $node) {

  $this->printnode($node);

}

在printnode()函数中,它显示为没有<audio>标签退出,因为它是动态创建的


守着星空守着你
浏览 145回答 1
1回答

慕姐4208626

看到结构后,是的,实际音频的 url 正在通过 JS 动态加载。但音频播放列表数据仍然可见。使用那个:$xpath = new DOMXPath($dom);$playlist_data = $xpath->evaluate('string(//script[@id="playlist-data"])');$data = json_decode($playlist_data, 1);echo $data['audio'];它位于 JSON 字符串格式的另一个脚本标签内。所以基本上,访问这些数据并以字符串形式获取值。然后你会得到 JSON 字符串,像往常一样,把它加载进去json_decode,解析器会做它的事情,用一个数组返回你,然后像任何普通数组一样访问音频 url旁注:我只是用作xpath个人喜好,您可以使用:$playlist_data = $dom->getElementById('playlist-data')->nodeValue;如果您选择这样做。
打开App,查看更多内容
随时随地看视频慕课网APP