php - 简单的 html DOM 如何在特定的 div 中获取 <source> 中的 src?

标签 php html css simple-html-dom

我有一个页面,我需要从中获取位于特定位置的 .mp4 文件

这是我需要从中提取 .mp4 文件链接的页面源。

<div class="videoPlayer">
            <script type="text/javascript">
                var sVideoErrorMessage = "<p style='margin-top:170px; text-align:center; font-size:16pt; font-weight:bold;'>You need the latest Flash player to see this video.<br><br><a rel='nofollow' href='http://www.macromedia.com/go/getflashplayer' style='text-align:center; font-size:16pt; font-weight:bold;'>Click here to get Adobe Flash player</a></p>";
                var bIsIpad         = false;

                function videoPoster() {
                                        var style_padding = (490 - 345.66666666667) / 2;

                    var playerInnerHTML = '<div id="posterHolder">';
                    playerInnerHTML += '    <div id="html5_vid">';
                    playerInnerHTML += '        <img src="http://img03.domainname.com/_thumbs/0000430/0430303/0430303_007i.jpg" width="582" alt="" id="vidImgPoster" /><a id="playBtn" href="javascript:;" onclick="startPlayer()"></a>';
                    playerInnerHTML += '        <span id="lb">loading movie...</span>';
                    playerInnerHTML += '    </div>';
                    playerInnerHTML += '</div>';
                    document.getElementById('_flv_player').innerHTML  = playerInnerHTML;

                    document.getElementById("html5_vid").innerHTML = "<video x-webkit-airplay='allow' id='html5_video' style='margin-top:" + style_padding + "px;' width='610' preload='auto' height='345.66666666667' controls onerror='cantPlayVideo()' " +
                            "<source src='http://videos.mp4.domainname.com/_videos_t4vn23s9jc5498tgj49icfj4678/0000430/_mp4/0430303.mp4?47aac1f74dca44b0626f9a59c221d75c6c0ad5a608ab8ed18241691fb9f72b19848d7f8a5b6c792e9b4beb72db7731038690fb39d4b4c5083c32fdda32c63370a178cc090ea9ba2c3b7f77d9722898ac9bea1210f3b15ab2265133db172d7a529598ea44320dfa43a7e3f99c5f17c54e468f66964f57e7e019813aae9eef404e5c7db09de772602b19b8800e9f63fa37dcee4c164e71a1da7d2b598e117f15caf7ef9e5700' type='video/mp4'>" +
                            "<p style='margin-top:170px; text-align:center; font-size:16pt; font-weight:bold;'>You need the latest Flash player to see this video.<br><br><a rel='nofollow' href='http://www.macromedia.com/go/getflashplayer' style='text-align:center; font-size:16pt; font-weight:bold;'>Click here to get Adobe Flash player</a></p>" +
                            '</video><div id="vidPoster" class="hidden"><img src="http://img03.domainname.com/_thumbs/0000430/0430303/0430303_007i.jpg" width="584" alt="" id="vidImgPoster" style="top:'+ style_padding +'px" /><a id="playBtn" href="javascript:;" onclick="startPlayer()"></a><span id="lb">loading movie...</span></div>';
                    var vid     = document.getElementsByTagName('video')[0];

                    if (vid != null && 'msie' != $.browser.name) {
                        vid.play();
                        vid.pause();
                    }
                                    }
            </script>
                </div>

所以我需要从所有这些代码中提取这个

http://videos.mp4.domainname.com/_videos_t4vn23s9jc5498tgj49icfj4678/0000430/_mp4/0430303.mp4

这是在 src 里面,也许你会注意到 .mp4 后面是一个带有一堆代码的问号,我不需要它,我只需要直接链接到 .mp4 文件。

是否可以提取出来?

我已经在我的 localhost 文件夹上设置了 simplehtmldom 并尝试了教程中的一些东西并且它正在工作但我不知道如何提取它。

我的 php 页面需要这个。

最佳答案

这是可以使用正则表达式的时代之一:

if(!preg_match("/<source src='([^?']*)/", $str, $m)) die('no match!');
$src = $m[1];

原因是它不是真正的 html,它是 javascript。没有 html 解析器可以很好地处理这个问题。

关于php - 简单的 html DOM 如何在特定的 div 中获取 <source> 中的 src?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21830016/

相关文章:

php - nginx - laravel - hhvm-Fastcgi 得到错误 500

html - CSS 样式无法在手机上正确隐藏图像

javascript - 如何显示我的 JavaScript 计数器?

javascript - 悬停时放大图像并添加聚光灯文本

css - 如何使用 CSS 填充设置 primefaces 数据表列填充

php - 连接到旧的 MySQL 服务器

php - 如何在mysql或PHP中获取匹配结果的百分比?

html - 如何创建元素从左到右、从上到下 float 的布局

php - char_length 和 php

javascript - 尝试从 opentable 获取 JSON 并输出结果