Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过javascript匹配文档中的文件扩展名_Php_Javascript - Fatal编程技术网

Php 通过javascript匹配文档中的文件扩展名

Php 通过javascript匹配文档中的文件扩展名,php,javascript,Php,Javascript,这是从我原来的问题延续下来的(http://stackoverflow.com/questions/10133976/getelementsbytagname-specific-links-only)我得到了解决,但现在面临着不同的问题 我正在我的网站上实现无政府播放器,问题是脚本将文件存储在域根之外,所以指向它们的链接的格式类似于(http://mysite.com/mod/file/download.php?file_guid=fileID),这对播放器来说很好,它仍然播放文件,但我需要按类

这是从我原来的问题延续下来的(http://stackoverflow.com/questions/10133976/getelementsbytagname-specific-links-only)我得到了解决,但现在面临着不同的问题

我正在我的网站上实现无政府播放器,问题是脚本将文件存储在域根之外,所以指向它们的链接的格式类似于(http://mysite.com/mod/file/download.php?file_guid=fileID),这对播放器来说很好,它仍然播放文件,但我需要按类型将文件分开

看看下面的javascript代码,“如果(o.href.match(/.mov$|.mp4$|.m4v$|.m4b$|.3gp$/i)”部分,如果我理解正确,它会说如果文件扩展名是.mov,.mp4等,那么就不包括该播放器。但是由于链接不是文件名和扩展名的标准格式,所以它无法识别它。 如何将“if(o.href.match)”更改为能够区分文件类型的内容? 我可以通过PHP代码以文本格式提取扩展名为的文件全名,并可能将其包装在或div中,使用if…div.match(。。。? 指向视频文件的链接已在div块id“video”中


非常感谢您的建议。

仅仅通过查看文件名并不总是能够决定文件的文件类型。更好的方法是查看
内容类型
头(对于HTTP资源)或
MIME类型
(本质上是相同的)


仍然有可能发送错误的
内容类型
,因此也许有一种方法可以通过查看前几个字节来识别文件类型?我知道PNG以一个非常明显的指示器开始。

如果您在其他地方生成这些URL,您可以只包含一个额外的查询参数,列出文件类型。例如
example.com/download.php?文件\u guid=XXX&type=mp4
<div id="video">
        <a href="<?php echo $file_url;?>"></a>
        </div>
var all = document.getElementById ( "video" ).getElementsByTagName ( "a" );
        for (var i = 0, o; o = all[i]; i++) {
            if(o.href.match(/\.mov$|\.mp4$|\.m4v$|\.m4b$|\.3gp$/i) && o.className!="amplink") {