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

如何在 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

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号