尝试:
<?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 >= 5.2
<?php echo pathinfo($sounds[$rand_sound], PATHINFO_FILENAME); ?>
PHP < 5.2
<?php
echo basename(
$sounds[$rand_sound],
'.'.pathinfo($sounds[$rand_sound], PATHINFO_EXTENSION)
);
?>