Egyptian ID Validator is a production-ready PHP library for validating and parsing Egyptian national ID numbers.
It enforces the official structural rules defined by the Egyptian Ministry of Interior, including a verified but undisclosed checksum mechanism.
ℹ️ This package is part of a broader multi-language validation system.
For other implementations (e.g., JavaScript, Python, Java), see the Egyptian-ID-Validator mother repository.
- ✅ Format Validation – Ensures the ID is 14 digits and correctly structured.
- ✅ Checksum Validation – Verifies integrity using an official checksum method.
- ✅ Component Extraction – Parses the ID into:
- Year, Month, and Day of Birth
- Governorate Name and Code
- Gender (Male/Female)
Simply include the validator file in your PHP project:
require_once 'src/egyptian_id_validator.php';No external dependencies required.
<?php
require_once 'src/egyptian_id_validator.php';
$id = "29805150102054"; // Replace with your ID
$result = validateEgyptianId($id);
if ($result !== null) {
echo "✅ Valid ID\n";
var_dump($result); // ['valid' => true, 'year', 'month', 'day', 'governorate', 'gender']
} else {
echo "❌ Invalid ID\n";
}This library is stable and actively maintained. It is being used in production environments and adheres strictly to the official Egyptian national ID structure, including a private and verified checksum algorithm.
🔒 The checksum logic is intentionally obfuscated to comply with national data validation practices and prevent misuse.
We welcome contributions to improve or extend this project.
Please submit detailed reports via GitHub Issues, including:
- Clear title and description
- ID sample (if safe to share)
- Expected vs. actual result
Open an issue to suggest enhancements that support practical developer needs, especially around usability, edge cases, or new environments.
- Fork this repository
- Create a branch:
git checkout -b feature/your-feature - Make your changes with tests
- Run PHPUnit tests:
phpunit test/ - Commit and push:
git commit -m "Describe feature"→git push origin feature/your-feature - Open a Pull Request to
main
This project is licensed under a custom MIT-based license with commercial use restrictions.
You may:
- Use the library in personal or commercial apps
- Modify and extend it with proper attribution
You may not:
- Resell, redistribute, or package this code as a core business product without explicit written permission
See LICENSE.md for full terms.
Mohamed A. Abdallah <----- Original creator GitHub · Email
Eyad Mohammed <------- PHP version Github