kostenloser Webspace werbefrei: lima-city


fopen + fwrite mit CHMOD setzen ?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    kreditonline

    kreditonline hat kostenlosen Webspace.

    Hallo

    wenn ich eine (neue) Datei anlege und den Inhalt mit fwrite() rein schreibe
    dann möchte ich dabei auch gleich CHMOD (die Dateirechte) setzen

    $fhx = fopen('data/neue_datei.txt','w',0666); 
    fwrite($fhx,'ich bin Text der in die Datei geschrieben wird'); 
    fclose($fhx);


    eigentlich solte dann doch die neue_datei.txt als Dateirechte haben: 0666
    ... bei FTP sehe ich dann aber für die Datei als Rechte "nur" den Wert: 0644

    Warum werden Dateirechte nicht "richtig" gesetzt ?
    .... wie macht man es "richtig", so dass man die Rechte bekommt, die man angibt ?!

    in der DOKU zu fopen() ... LINK ... steht auch gar-nichts von Dateirechte setzen:
    ... keine Dateirechte als Argument / Parameter für fopen() Aufruf / Syntax ?

    resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )


    kein Parameter für CHMOD (Dateirechte) in fopen ... für Mode = "w" ... zum Schreiben ???
    ... aber viele Beispiele (nicht aus der PHP DOKU) zeigen das so
    siehe ... wie mein Code oben, 4 Stellige Zahl für CHMOD als Argument nach $mode ("w")






    Beitrag zuletzt geändert: 1.5.2013 9:58:24 von kreditonline
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Warum nutzt du nicht die dafür vorgesehene Funktion chmod()?
  4. Autor dieses Themas

    kreditonline

    kreditonline hat kostenlosen Webspace.

    ja, Danke, mit chmod() nach dem schreiben der Datei wird es ja wohl klappen :)

    muss ich das so machen:
    $fchmod = '0666'; 
    $moddec = octdec($fchmod); 
    chmod($filename, $fmoddec);


    oder geht es auch direkt so:
    chmod($filename, 0666);


    aber nochmal zum Verständniss
    ... gibt es jetzt bei fopen() die Möglichkeit gleich die Dateirechte zu setzen, oder nicht ?

    Viele Beispiele zeigen diese Möglichkeit, aber in der DOKU steht davon nichts ?!?
    ... wie kommen die in den Beispielen darauf, wenn es nicht in der Doku steht ?

    PS: ... und $mode wird meist mit "w" (bzw. "a", etc) angegeben, also doppelte Anführungszeichen,
    ist es vielleicht, weil ich $mode mit einfachen Hochkommas angebe ... 'w' .... oder ist das egal ?

  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    kreditonline schrieb:
    oder geht es auch direkt so:
    chmod($filename, 0666);
    So geht es auch, die Null ist aber wichtig, damit PHP die Zahl als Oktalzahl interpretiert.

    kreditonline schrieb:
    aber nochmal zum Verständniss
    ... gibt es jetzt bei fopen() die Möglichkeit gleich die Dateirechte zu setzen, oder nicht ?
    Nein, siehe Dokumentation.

    kreditonline schrieb:
    Viele Beispiele zeigen diese Möglichkeit, aber in der DOKU steht davon nichts ?!?
    ... wie kommen die in den Beispielen darauf, wenn es nicht in der Doku steht ?
    Kannst du die Beispiele vllt verlinken? Weil ich finde nirgendwo etwas in diese Richtung…

    kreditonline schrieb:
    PS: ... und $mode wird meist mit "w" (bzw. "a", etc) angegeben, also doppelte Anführungszeichen,
    ist es vielleicht, weil ich $mode mit einfachen Hochkommas angebe ... 'w' .... oder ist das egal ?
    Das ist hier egal. Es gibt allerdings einen Unterschied zwischen
    '
    und
    "
    (falls du ihn nicht kennen solltest): bei
    "
    werden Escape-Sequenzen ausgewertet und Variablen expandiert, bei
    '
    werden nur die Escape-Sequenzen
    \'
    und
    \\
    ausgewertet und der Rest 1:1 in den String übernommen. Weitere Infos dazu gibts hier.
  6. Autor dieses Themas

    kreditonline

    kreditonline hat kostenlosen Webspace.

    hmm, finde das Beispiel jetzt auch nicht mehr,
    es war so ein Tutorial für Counter ohne MySQL

    aber ja anscheinend "falsch" ... also Dateirechte setzten geht mit chmod() ... nicht im fopen() Aufruf

    Danke !
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!