Array in Dateischreiben wie Source

  • PHP

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Gelöschter Benutzer.

    Array in Dateischreiben wie Source

    Moin,

    ich habe ein kleines problem(chen)^^
    und zwar inkludiere ich meine config.php.
    darin ist einfach nur ein array welches so aufgbaut ist:

    PHP-Quellcode

    1. $_CONFIG['DB']['HOST'] = "localhost";
    2. $_CONFIG['DB']['USER'] = "root";
    3. $_CONFIG['DB']['PASS'] = "";
    4. $_CONFIG['DB']['NAME'] = "meine_tabelle";
    5. [...]
    6. $_CONFIG['PAGE']['TITLE'] = "Seitentitel";


    das laden funktioniert auch. jetzt möchte ich allerdings das bearbeitete Array wieder zurück in die Datei speichern.

    gibts dafür schon eine funktion oder muss ich mir was selbst basteln?^^

    Gruß,
    Julian
    file_put_contents. Damit kannst du dann auch ein PHP-Skript überschreiben.

    Sowas finde ich aber eher ungebräuchlich. Bei vielen Daten solltest du ohnehin auf eine Datenbank zurückgreifen. Vielleicht empfiehlt es sich schon jetzt?
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Dann fertige eine Vorlage an? Bisher hast du das Problem zu ungenau beschrieben, als das ich das hätte rauslesen können.

    Und wo ist jetzt das Problem?
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    wie schon geschrieben, ich habe eine config.php mit nem array(siehe Oben).
    ->die Config.php wird per include geladen
    ->ich setze z.B. $_CONFIG['DB']['HOST'] = "88.222.123.11";
    ->Jetzt kommt mein problem. ich möchte das komplette array so wie oben wieder in die datei schreiben
    Nimm einfach json_encode/json_decode, das kannst du dann mit file_put_contents in eine Datei schreiben.

    Bsp: (php.net)
    Spoiler anzeigen
    <?php
    $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

    echo json_encode($arr);
    ?>
    Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
    {"a":1,"b":2,"c":3,"d":4,"e":5}
    /nicht getestet
    Ich nehme an, es soll später wieder als PHP Sourcecode in der ursprünglich eingebundenen Datei stehen, sodass der Wert dauerhaft geändert ist.

    Wie gesagt: Erstelle dir doch eine Template, über die du per Funktion Werte einsetzt.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    @Lukas: Ok, hab mir die seite auf php.net durchgelesen und file_put_contents kann auch arrays verarbeiten, dadurch erhalte ich die ausgabe so wie ich sie brauche.

    Super! Vielen Dank :)

    EDIT: Oder auch nicht... Falsches Array gespeichert.... hmmm

    EDIT 2: OK, hab nun meine eigene Funktion geschrieben :) bin ja nicht zu geizig^^ hier ist sie:

    PHP-Quellcode

    1. function PrintArray($in, $start)
    2. {
    3. if(is_array($in))
    4. {
    5. foreach($in as $key => $value)
    6. {
    7. if(is_array($value))
    8. {
    9. $out .= PrintArray($value,$start."['".$key."']");
    10. }
    11. else
    12. {
    13. $out .= $start."['".$key."'] = ".'"'.$value.'";'.chr(13).chr(10);
    14. }
    15. }
    16. }
    17. return $out;
    18. }


    Die funktion arbeitet rekursiv, $in ist das Array welches zu php sourcecode umgewandelt werden soll und $start ist der Arrayname z.B. $_CONFIG

    Gruß,
    Julian

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gelöschter Benutzer“ ()