我使用PHP获取随机的.ogg文件,然后将其播放给用户。我想向用户显示文件名,但也会显示(.ogg)扩展名。
<?php
$sounds = array("Blah - Artist.ogg", "Blah1 - Artist2.ogg");
$rand_sound = array_rand($sounds);
?>
这是歌曲名称输出:
<p class="text"> Now playing: <?php echo $sounds[$rand_sound]; ?> </p>
如何才能显示文件名?任何帮助将不胜感激。
答案 0 :(得分:2)
我也相信你也可以这样做:
pathinfo($sounds[$rand_sound],PATHINFO_FILENAME);
答案 1 :(得分:1)
尝试:
<?php echo basename($sounds[$rand_sound], '.ogg'); ?>
可能会更快:
<?php echo substr($sounds[$rand_sound], 0, -4); ?>
或者:
<?php echo str_replace('.ogg', '', $sounds[$rand_sound]); ?>
或者每个分机:
<?php echo substr($sounds[$rand_sound], 0, strrpos($sounds[$rand_sound], '.')); ?>
类似但如果文件没有扩展名也可以使用:
<?php echo substr($sounds[$rand_sound], 0, strrpos($sounds[$rand_sound], '.') ? : strlen($sounds[$rand_sound])); ?>
也许是最好的解决方案(适用于所有情况):
<?php echo str_replace(strrchr($sounds[$rand_sound], '.'), '', $sounds[$rand_sound]); ?>
编辑:
上述功能是一项测试,因为找到新的做事方式很有趣。但我建议使用PHP的本机函数pathinfo
或basename
。因此,如果您知道扩展程序采用basename
的第一个解决方案,则采用以下方法之一。
PHP&gt; = 5.2
<?php echo pathinfo($sounds[$rand_sound], PATHINFO_FILENAME); ?>
PHP&lt; 5.2
<?php
echo basename(
$sounds[$rand_sound],
'.'.pathinfo($sounds[$rand_sound], PATHINFO_EXTENSION)
);
?>
答案 2 :(得分:0)
<?php echo preg_replace("/\.[^\.]*$/", "", $sounds[$rand_sound]); ?>