$a = 'hello_world.php';
我需要HELLO WORLD
$a = str_replace('.php', '', $a);
$a = str_replace('_', ' ', $a);
$a = strtoupper($a);
这有效但是 - 有更短的方法吗?
答案 0 :(得分:4)
您可以在str_replace
中使用数组作为参数:
$a = strtoupper(str_replace(array('.php', '_'), array('', ' '), $a));
答案 1 :(得分:3)
您可以将str_replace()
与数组一起使用:
echo strtoupper(str_replace(['.php', '_'], ['', ' '], $a));
请注意,上述语句使用short array syntax,仅适用于PHP 5.4+。如果您使用的是较旧的PHP版本,则必须使用array(...)
语法:
echo strtoupper(str_replace(array('.php', '_'), array('', ' '), $a));
如果事先未知文件扩展名,则可以使用preg_replace_callback()
代替:
echo preg_replace_callback('/(\w+)\..*/i', function ($m) {
return strtoupper(str_replace('_', ' ', $m[1]));
}, $a);
答案 2 :(得分:1)
尝试使用strtr函数并使用“而不是'(撇号)