string in oktalzahl umwanden

deinertsche

Erfahrenes Mitglied
string in oktalzahl umwandeln

Wie wandele ich einen String
$string="0777"; in eine Oktalzahl um, damit ich es für chmod benutzen kann?
Die Oktalzahl soll dann auch 0777 sein, ist aber ein anderer Variablentyp.

Ist verdammt wichtig für mich!!!



edit: settype($string,"octal") geht leider nicht :-(
 
Zuletzt bearbeitet:
Hm...

Für Rechenoperationen:
PHP:
$zahl = base_convert($string, 8, 10);

Vor dem Ausgeben:
PHP:
$string = base_convert($zahl, 10, 8);

Eigene Datentypen für verschiedene Zahlensysteme gibt es ja bei PHP und AFAIK auch bei vielen anderen höheren Programmiersprachen nicht.
 
ich weiss nicht, ob es dafür eine funktion gibt. deswegen würde ich den angegebenen wert erstmal ins dezimalsystem umrechnen, und dann den dezimalwert benutzen.

777 (oktal) = 7*8^2 + 7*8^1 + 7*8^0 = 511 (dezimal)

falls dir das irgendwie weiterhilft...?
 
Ich will ja eben nicht den Inhalt der Variable konvertieren sondern nur den TYP, weil der befehl chmod() halt wie gesagt keinen string annimmt:

ich habs jetzt folgendermasse gelöst:
switch ($string)
{
case '0777': chmod($dateiname,0777); break;
case '0766': chmod($dateiname,0766); break;
case '0755': chmod($dateiname,0755); break;
case '0744': chmod($dateiname,0744); break;
case '0733': chmod($dateiname,0733); break;
case '0722': chmod($dateiname,0722); break;
case '0711': chmod($dateiname,0711); break;
................................................
default: chmod($dateiname,0744); break;
}

nicht sehr elegant, aber es musste bis 15uhr fertig sein.

trotzdem Danke
 
Irgendwie kommt´s mir so vor, als ob du meinen Beitrag gar nicht gelesen hast...

Eigene Datentypen für verschiedene Zahlensysteme gibt es ja bei PHP und AFAIK auch bei vielen anderen höheren Programmiersprachen nicht.

^^

Dass chmod() keinen String annimmt stimmt schon, allerdings castet PHP Variablen ja automatisch in die benötigten Datentypen.

PHP:
chmod($dateiname,base_convert($string, 8, 10));

So geht´s also auch...
 
Zurück