为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
守着星空守着你 2021-11-13 16:44:55
我正在尝试读取<audio>PHP 中的 html标记,但它是动态创建的这是网址!我用来阅读$dom = new DOMDocument();@$dom->loadHTML($html);foreach (iterator_to_array($dom->getElementsByTagName('audio')) as $node) {  $this->printnode($node);}在printnode()函数中,它显示为没有<audio>标签退出,因为它是动态创建的
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

看到结构后,是的,实际音频的 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;

如果您选择这样做。


查看完整回答
反对 回复 2021-11-13
  • 1 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信