W3docs

How to Get a File Extension in PHP

Here, we have collected five simple and efficient ways that will help you to get a PHP file extension. Check out the examples and choose the best one.

In PHP, there exist various ways of getting a file extension. In our tutorial, we have chosen the 5 best ways that will help you to get a file extension straightforwardly.

Go ahead and choose the one that matches your project better.

Explode a File Variable

The first way is exploding a file variable and getting the last element of the array. That will be a file extension. Here is how you can do it:

php explode

<?php

$fileName = 'banner.jpg';
$fileNameParts = explode('.', $fileName);
$ext = end($fileNameParts);

echo $ext;
?>

Find the Last Occurrence of ‘.’

The second approach detects the last occurrence of ‘.’, which returns <kbd class="highlighted">‘.jpg’</kbd>. Afterwards, you need to remove the first character of a string using substr. As a result, the exact file extension is returned.

Here is an example:

php substr

<?php

$fileName = 'banner.jpg';
$ext = substr(strrchr($fileName, '.'), 1);

echo $ext;
?>

Use strrpos

The next way uses strrpos to find the position of the last occurrence of ‘.’ inside a filename. By incrementing that position by 1, substr extracts the extension.

The example is shown below:

php strrpos

<?php

$fileName = 'banner.jpg';
$ext = substr($fileName, strrpos($fileName, '.') + 1);

echo $ext;
?>

Use preg_replace

In this approach, you apply a regular expression search and replacement.

Here is an example:

php preg_replace

<?php

$fileName = 'banner.jpg';
$ext = preg_replace('/^.*\.([^.]+)$/', '$1', $fileName);

echo $ext;
?>

Use pathinfo

The final approach uses the PHP <kbd class="highlighted">pathinfo()</kbd> function, which returns information about a file. If the second optional parameter is omitted, it returns an associative array containing dirname, extension, basename, and filename. If you pass a specific flag, it returns only that piece of information.

Here is an example:

php pathinfo function

<?php

$fileName = 'banner.jpg';
$ext = pathinfo($fileName, PATHINFO_EXTENSION);

echo $ext;
?>

So, after learning about all the possible ways described above, you are free to choose the best one for you. In our opinion, the simplest, yet the most efficient way among all these options is the <kbd class="highlighted">pathinfo()</kbd> function.