How to remove extension from string in PHP?

There are three ways of removing an extension from string. They are as follows

  • Using an inbuilt function pathinfo
  • Using an inbuilt function basename
  • Using an string functions substr and strrpos

Using pathinfo() Function: The pathinfo() function returns an array containing the directory name, basename, extension and filename.

Syntax:

pathinfo ( $path, $options = PATHINFO_DIRNAME|PATHINFO_BASENAME|PATHINFO_EXTENSION|PATHINFO_FILENAME )

Alternatively, if only one PATHINFO_ constants is passed as a parameter it returns only that part of the full filename.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// Initializing a variable with filename
$file = 'filename.html';
  
// Extracting only filename using constants
$x = pathinfo($file, PATHINFO_FILENAME);
  
// Printing the result
echo $x;
  
?>

chevron_right


Output:

filename

Note: If the filename contains a full path, then only the filename without the extension is returned.

Using basename() Function: The basename() function is used to return trailing name component of path in the form of string. The basename() operates naively on the input string, and is not aware of the actual file-system, or path components such as “..”
Syntax:

basename ( $path, $suffix )

When an extension of file is known it can be passed as a parameter to basename function to tell it to remove that extension from the filename.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// Initializing a variable
// with filename
$file = 'filename.txt';
  
// Suffix is passed as second
// parameter
$x = basename($file, '.txt');
  
// Printing the result
echo $x;
  
?>

chevron_right


Output:

filename

Using substr()and strrpos() function: Another way of removing an extension from a filename is using the string functions substr and strrpos. The substr() function returns the part of string whereas strrpos() finds the position of last occurrence of substring in a string.

Syntax:

substr ( $string, $start, $length )

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// Initializing a variable
// with filename
$file = 'filename.txt';
  
// Using substr 
$x = substr($file, 0, strrpos($file, '.'));
  
// Display the filename
echo $x;
  
?>

chevron_right


Output:

filename

Note: If the filename contains a full path, then the full path and filename without the extension is returned.



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.