Rechte eines Files

Pre7ender

Mitglied
Hallo zusammen...

Ich habe folgenden code, welcher mir die Rechte eines Files ausgibt!
Leider funktioniert das Script nur mit PHP5, aufgrund der Funktion str_split

Code:
<?php

function FilePermsDecode( $perms )
{
$oct = str_split( strrev( decoct( $perms ) ), 1 );
$masks = array( '---', '--x', '-w-', 'rw-', 'r--', 'r-x', 'rw-', 'rwx' );
return(
sprintf( '%s %s %s',
array_key_exists( $oct[ 2 ], $masks ) ? $masks[ $oct[ 2 ] ] : '###',
array_key_exists( $oct[ 1 ], $masks ) ? $masks[ $oct[ 1 ] ] : '###',
array_key_exists( $oct[ 0 ], $masks ) ? $masks[ $oct[ 0 ] ] : '###'
)

);
}

$perms = fileperms($file);
if(
$perms !== false )
{
printf('%s',FilePermsDecode($perms));
}

?>


Kann ich die Funktion irgendwie so umschreiben, dass sie auch mit PHP4 läuft?

Danke für Eure Hilfe!
 
Damit kannst Du die Funktion einbauen falls sie nicht existiert:
PHP:
if (!function_exists('str_split'))
{
 function str_split($string)
 {
  $arr=array();
  for ($x=0;$x<strlen($string);$x++)
  {
   $arr[]=substr($string,$x,1);
  }
  return $arr;
 }
}
So sollte es zumindest klappen.
 
Wenn Du das wie oben gezeigt einbindest wird die Funktion auch nur dann selbst deklariert wenn sie nicht bereits existiert. Dadurch kannst Du das Script ohne Aenderungen sowohl mit PHP4 als auch mit PHP5 einsetzen.
Ich nutze diese Technik bei meiner Website fuer die Funktion gettext().

Falls Du keine weiteren Fragen mehr hast denk bitte daran den Thread als erledigt zu markieren.
 
Nimm lieber folgende Funktion, die besitzt auch den optionalen Längenparameter:
PHP:
function str_split($string, $splitLength=1)
{
	if( !is_string($string) || ($splitLength = intval($splitLength)) < 1 ) {
		return false;
	}
	$retVal = array();
	$stringLength = strlen($string);
	for($i=0; $i<$stringLength; $i+=$splitLength) {
		$retVal[] = substr($string, $i, $splitLength);
	}
	return $retVal;
}
 
Zurück