
You need to call the pathinfo() function to get the file extension in PHP.
Here’s an example:
$file = "Picture.png";
$ext = pathinfo($file, PATHINFO_EXTENSION);
echo "The file extension is $ext";
The output will be:
The file extension is png
Explanation
The pathinfo() is a built-in PHP function used to get information from a file path.
pathinfo(
string $file,
int $flags = PATHINFO_ALL
): array|string
The function returns either an array or a string depending on the parameter you passed into it.
The two parameters are:
- The
$filestring that you want to parse - The
$flagsto specify what you want to get from the$file
There are four valid $flags values:
PATHINFO_DIRNAMEPATHINFO_BASENAMEPATHINFO_EXTENSIONPATHINFO_FILENAME
If you don’t pass a $flags value, then PHP will get all four information as an array of strings.
This is why to get a file extension, you pass the string of the file path and the PATHINFO_EXTENSION to the function:
$ext = pathinfo($file, PATHINFO_EXTENSION);
When you upload a file using an HTML <input> tag, you need to get the file name parameter from the $_FILES array.
Here’s an example code to get the extension from an HTML form:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$file = $_FILES["the_file"];
$filename = $file["name"];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
echo "<h1 style='color:red;'>The file extension is $ext</h1>";
}
?>
<h1>PHP Get file extension</h1>
<form
method="post"
action=""
enctype="multipart/form-data">
File:
<input type="file" name="the_file">
<input type="submit" name="submit" value="Submit">
</form>
When you put a file into the <input> type and hit submit, the file extension will be printed on the page.
Here’s an example of the PHP code in action:
And now you’ve learned how to get the file extension in PHP. Nice work! 👍