How to Remove Extension from String in PHP

In PHP, removing the file extension from a string is a common task when working with filenames. There are several effective methods to accomplish this, each with its own advantages depending on your specific needs.

Using the pathinfo() Function

The pathinfo() function is the most straightforward and reliable method to remove file extensions ?

<?php
$filename = 'exampleFile.txt';
$filenameWithoutExtension = pathinfo($filename, PATHINFO_FILENAME);
echo $filenameWithoutExtension;
?>
exampleFile

The pathinfo() function with PATHINFO_FILENAME constant returns the filename without the extension. This method is safe and handles edge cases well.

Using substr() and strrpos() Functions

This method finds the last dot position and extracts everything before it ?

<?php
$filename = 'exampleFile.txt';
$extensionPosition = strrpos($filename, '.');
$filenameWithoutExtension = substr($filename, 0, $extensionPosition);
echo $filenameWithoutExtension;
?>
exampleFile

The strrpos() function finds the position of the last occurrence of the dot, and substr() extracts the substring from the start up to that position.

Using explode() and implode() Functions

This approach splits the filename by dots and removes the last part ?

<?php
$filename = 'exampleFile.txt';
$parts = explode('.', $filename);
array_pop($parts);
$filenameWithoutExtension = implode('.', $parts);
echo $filenameWithoutExtension;
?>
exampleFile

The explode() function splits the filename into an array, array_pop() removes the last element (extension), and implode() joins the remaining parts back together.

Using Regular Expressions

Regular expressions provide a flexible patternbased approach ?

<?php
$filename = 'exampleFile.txt';
$filenameWithoutExtension = preg_replace('/\.[^.]+$/', '', $filename);
echo $filenameWithoutExtension;
?>
exampleFile

The pattern /\.[^.]+$/ matches a dot followed by one or more nondot characters at the end of the string, effectively removing the extension.

Comparison

Method Best Use Case Performance
pathinfo() General use, most reliable Good
substr()/strrpos() Simple filenames Fast
explode()/implode() Files with multiple dots Moderate
Regular expressions Complex patterns Slower

Conclusion

For most cases, pathinfo() is the recommended approach as it's designed specifically for file path manipulation and handles edge cases reliably. Choose other methods based on your specific requirements and performance needs.

Updated on: 2026-03-15T10:30:28+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements