WP_Translation_File_MO::detect_endian_and_validate_file
Detects endian and validates file.
Method of the class: WP_Translation_File_MO{}
No Hooks.
Returns
false|'V'|'N'. V for little endian, N for big endian, or false on failure.
Usage
// protected - for code of main (parent) or child class $result = $this->detect_endian_and_validate_file( $header );
- $header(string) (required)
- File contents.
Changelog
| Since 6.5.0 | Introduced. |
WP_Translation_File_MO::detect_endian_and_validate_file() WP Translation File MO::detect endian and validate file code WP 6.9
protected function detect_endian_and_validate_file( string $header ) {
$big = unpack( 'N', $header );
if ( false === $big ) {
return false;
}
$big = reset( $big );
if ( false === $big ) {
return false;
}
$little = unpack( 'V', $header );
if ( false === $little ) {
return false;
}
$little = reset( $little );
if ( false === $little ) {
return false;
}
// Force cast to an integer as it can be a float on x86 systems. See https://core.trac.wordpress.org/ticket/60678.
if ( (int) self::MAGIC_MARKER === $big ) {
return 'N';
}
// Force cast to an integer as it can be a float on x86 systems. See https://core.trac.wordpress.org/ticket/60678.
if ( (int) self::MAGIC_MARKER === $little ) {
return 'V';
}
$this->error = 'Magic marker does not exist';
return false;
}