# Using the Exif extension in PHP

> Read camera, date, orientation and GPS metadata from JPEG and TIFF images in PHP using the Exif extension.

Source: https://helpcenter.ruachost.com/developers/php/using-the-exif-extension-in-php/

The **Exif (Exchangeable Image File Format)** extension in PHP allows developers to read metadata embedded in images taken by digital cameras and mobile devices. On **ruachost.com**, PHP includes support for Exif, making it possible to extract details such as camera model, orientation, exposure time, and even embedded thumbnails.

## Why Use Exif?

- Retrieve metadata from JPEG and TIFF images.
- Access information like camera type, date/time, resolution, and GPS coordinates.
- Useful for photo galleries, image management systems, and digital forensics.

## Enabling Exif

- Exif support is compiled into PHP on Ruachost servers.
- To confirm availability, run:

  ```
  <?php
  phpinfo();
  ?>
  ```
- Look for the **Exif** section in the output.

## Basic Usage

### Example: Reading Exif Data

```
<?php
$exif = exif_read_data('photograph.jpg', 'IFD0');

if ($exif !== false) {
    echo "Camera: " . $exif['Make'] . " " . $exif['Model'] . "<br>";
    echo "Date Taken: " . $exif['DateTime'] . "<br>";
} else {
    echo "No Exif data found.";
}
?>
```

### Example: Extracting All Metadata

```
<?php
$exif = exif_read_data('photograph.jpg');
print_r($exif);
?>
```

This will output all available metadata, including orientation, resolution, and color space.

## Common Use Cases

- **Photo galleries**: Display camera details alongside images.
- **Image rotation**: Use orientation metadata to automatically rotate images.
- **Geo‑tagging**: Extract GPS coordinates for mapping applications.
- **Digital asset management**: Store metadata in databases for search and categorization.

> **Best Practices:**
- Always validate Exif data before use to avoid corrupted or malicious input.
- Handle missing metadata gracefully.
- Use `phpinfo()` to confirm Exif support if scripts fail.
- For performance, only request specific sections of metadata when needed.
