我正在嘗試讀取<audio>PHP 中的 html標記,但它是動態(tài)創(chuàng)建的這是網(wǎng)址!我用來閱讀$dom = new DOMDocument();@$dom->loadHTML($html);foreach (iterator_to_array($dom->getElementsByTagName('audio')) as $node) { $this->printnode($node);}在printnode()函數(shù)中,它顯示為沒有<audio>標簽退出,因為它是動態(tài)創(chuàng)建的
1 回答

慕姐4208626
TA貢獻1852條經(jīng)驗 獲得超7個贊
看到結構后,是的,實際音頻的 url 正在通過 JS 動態(tài)加載。
但音頻播放列表數(shù)據(jù)仍然可見。使用那個:
$xpath = new DOMXPath($dom);
$playlist_data = $xpath->evaluate('string(//script[@id="playlist-data"])');
$data = json_decode($playlist_data, 1);
echo $data['audio'];
它位于 JSON 字符串格式的另一個腳本標簽內。所以基本上,訪問這些數(shù)據(jù)并以字符串形式獲取值。然后你會得到 JSON 字符串,像往常一樣,把它加載進去json_decode,解析器會做它的事情,用一個數(shù)組返回你,然后像任何普通數(shù)組一樣訪問音頻 url
旁注:我只是用作xpath個人喜好,您可以使用:
$playlist_data = $dom->getElementById('playlist-data')->nodeValue;
如果您選擇這樣做。
- 1 回答
- 0 關注
- 168 瀏覽
添加回答
舉報
0/150
提交
取消