Qu'est-ce qui fait d'un phar un phar et pas un tar ou un zip?
PHP Manual

Définition des entrées du manifeste Phar

Chaque fichier du manifeste contient les informations suivantes :

Entrée du manifeste Phar
Taille en octets Description
4 octets Longueur du nom de fichier en octets
?? Nom de fichier (longueur basée sur la valeur précédente)
4 octets Taille du fichier décompressé en octets
4 octets Timestamp Unix du fichier
4 octets Taille du fichier compressé en octets
4 octets Somme de contrôle CRC32 du contenu décompressé du fichier
4 octets Drapeaux bitmappés spécifiques au fichier
4 octets Longueur des métadonnées du fichier sérialisées (0 si aucune)
?? métadonnées du fichier sérialisées, stockées dans un format serialize()

A noter qu'à partir de l'API 1.1.1, les répertoires vides sont stockés comme des noms de fichier avec un slash final comme mon/repertoire/

Les valeurs reconnues de drapeaux bitmappés spécifiques au fichier sont :

Valeurs reconnues de bitmap
Valeur Description
0x000001FF Ces bits sont réservés pour définir des permissions spécifiques au fichier. Celles-ci sont utilisées pour fstat() et peuvent être utilisées pour recréer les permissions souhaitées en cas d'extraction.
0x00001000 Si présent, le fichier est compressé grâce à zlib
0x00002000 Si présent, le fichier est compressé grâce à bzip


Qu'est-ce qui fait d'un phar un phar et pas un tar ou un zip?
PHP Manual