在PHP中,去除文件名或字符串的后缀通常是指移除文件扩展名。例如,将example.txt
转换为example
。
function removeExtension($filename) {
$dotPosition = strrpos($filename, '.');
if ($dotPosition === false) {
return $filename;
}
return substr($filename, 0, $dotPosition);
}
$filename = "example.txt";
$newFilename = removeExtension($filename);
echo $newFilename; // 输出: example
function removeExtension($filename) {
return preg_replace('/\.[^.]+$/', '', $filename);
}
$filename = "example.txt";
$newFilename = removeExtension($filename);
echo $newFilename; // 输出: example
原因:如果文件名中包含多个点,例如example.sub.txt
,简单的字符串操作可能会移除错误的点。
解决方法:
function removeExtension($filename) {
$parts = explode('.', $filename);
return array_shift($parts);
}
$filename = "example.sub.txt";
$newFilename = removeExtension($filename);
echo $newFilename; // 输出: example
原因:如果文件名本身就是以点结尾,例如.hiddenfile
,去除后缀会导致文件名为空。
解决方法:
function removeExtension($filename) {
$dotPosition = strrpos($filename, '.');
if ($dotPosition === false || $dotPosition === 0) {
return $filename;
}
return substr($filename, 0, $dotPosition);
}
$filename = ".hiddenfile";
$newFilename = removeExtension($filename);
echo $newFilename; // 输出: .hiddenfile
通过这些方法,可以有效地去除文件名的后缀,并处理一些常见的特殊情况。
领取专属 10元无门槛券
手把手带您无忧上云