WP_Filesystem_Base::getnumchmodfromh( string $mode ): string

Converts *nix-style file permissions to an octal number.

Description

Converts ‘-rw-r–r–‘ to 0644 From "info at rvgate dot nl"’s comment on the PHP documentation for chmod()

Parameters

$modestringrequired
string The *nix-style file permissions.

Return

string Octal representation of permissions.

Source

public function getnumchmodfromh( $mode ) {
	$realmode = '';
	$legal    = array( '', 'w', 'r', 'x', '-' );
	$attarray = preg_split( '//', $mode );

	for ( $i = 0, $c = count( $attarray ); $i < $c; $i++ ) {
		$key = array_search( $attarray[ $i ], $legal, true );

		if ( $key ) {
			$realmode .= $legal[ $key ];
		}
	}

	$mode  = str_pad( $realmode, 10, '-', STR_PAD_LEFT );
	$trans = array(
		'-' => '0',
		'r' => '4',
		'w' => '2',
		'x' => '1',
	);
	$mode  = strtr( $mode, $trans );

	$newmode  = $mode[0];
	$newmode .= $mode[1] + $mode[2] + $mode[3];
	$newmode .= $mode[4] + $mode[5] + $mode[6];
	$newmode .= $mode[7] + $mode[8] + $mode[9];

	return $newmode;
}

Changelog

VersionDescription
2.5.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.