0
我想將音頻播放器添加到Magento商店的產品查看頁面以播放示例音頻文件,因此我編輯了magento_root/app/design/path/to/theme/template/downloadable/catalog/product/samples.phtml
。如何從類似MVC的URL中確定文件類型
<?php if ($this->hasSamples()): ?>
<dl class="item-options">
<dt><?php echo $this->getSamplesTitle() ?></dt>
<?php $_samples = $this->getSamples() ?>
<?php foreach ($_samples as $_sample): ?>
<dd>
<!--HTML5 Audio player-->
<audio controls>
<source src="<?php echo $this->getSampleUrl($_sample) ?>" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
<br/>
<a href="<?php echo $this->getSampleUrl($_sample) ?>" <?php echo $this->getIsOpenInNewWindow() ? 'onclick="this.target=\'_blank\'"' : ''; ?>><?php echo $this->escapeHtml($_sample->getTitle()); ?></a>
</dd>
<?php endforeach; ?>
</dl>
<?php endif; ?>
這工作正常,但我希望播放器只顯示音頻文件。我的問題是,由$this->getSampleUrl($_sample)
返回的網址格式爲 http://example.com/index.php/downloadable/download/sample/sample_id/1/,但沒有關於網址上的文件類型的信息。
我認爲抓取URL的內容來確定文件類型,但我覺得完全讀取文件以確定文件類型是愚蠢的。 試過pathinfo()
但它沒有返回任何有關文件類型。
我想要實現這樣的
$sample_file = $this->getSampleUrl($_sample);
$type = getFileType($sample_file);
if(preg_match('audio-file-type-pattern',$type){ ?>
<!--HTML5 Audio player-->
<audio controls>
<source src="<?php echo $sample_file ?>" type="<?php echo $type?>">
Your browser does not support the audio element.
</audio>
}