Zeige Ergebnis 1 bis 6 von 6
  1. #1

    PHP-Skripte die sich selbst umschreiben.

    Servus.

    Ich bezweifle zwar dass das funktionieren kann, allerdings weis man ja nie: Gibt es einen Weg, ein PHP-Skript dazu zu bringen sich selbst umzuschreiben?

    Hintergrund ist der, dass ich immerwieder ein paar Variablen habe bei denen es ganz praktisch wäre sie über die Laufzeit des Skriptes hinaus speichern zu können. Aktuell lagere ich sie immer in eine eigene Textdatei aus, was aus meiner Sicht jedoch nur suboptimal ist.


    - Manuel


    Are you kidding? I've got a reputation to live up to!
    Man if my show doesn't make people vomit, and have an erection at the same time,
    then I would let my audience down!


    Dexter; Staffel 3 Episode 10; ∼10:56


  2. #2
    Benutzerbild von psycco
    Registriert seit
    Jul 2001
    Ort
    Kiel/Würzburg
    Beiträge
    6.418
    Likes
    0
    naja ich wüsste schon nen weg wie das geht, aber genau aus dem grund den du nennst hat man datenbanken eingeführt ..
    und ob du jetzt oracle, mysql, oder eine einfache textdatenbank nimmst spielt bei "immerwieder ein paar Variablen" absolut keine rolle ..

    und das ist nicht suboptimal, sondern optimal, weil es anders nicht geht. das script selber zu ändern wäre blödsinn.
    wenn du unbedingt möchtest, kannst du sie ja in der form

    $var = "inhalt";

    in eine textdatei schreiben, die einlesen und per eval() ausführen, aber das ist ein grob fahrlässiges sicherheitsrisiko ..



    ALL GLORY TO THE HYPNO TOAD

  3. #3
    Kleiner Exkurs:
    Insbesondere meine kleinen Helferlein-Skripte (Skripte die mir nur einfache Arbeiten abnehmen, die nicht für den öffentlichen Zugriff vorgesehen sind und daher auch nicht sonderlich performant sein müssen) schreibe ich gerne so, dass sie in jeder Umgebung unter möglichst jeder Konfiguration auf Anhieb funktionieren.

    Nicht erst einige Dateien unter dem richtigen Namen hochladen und/oder MySQL-Host und -Passwort einstellen müssen, einfach die Datei unter irgendeinem Namen irgendwo reinschmeißen und ausführen, fertig.


    ======================

    Aktuell schreibe ich an einem 20-zeiligem-PHP-Skript, in welchem ich gerne eine einzige dreistellige Zahl (3byte) laufzeitübergreifend speichern würde. Das Skript wird circa 2 mal pro Woche ausgeführt werden.

    MySQL will ich nicht, ...
    - weil es dafür total oversized wäre,
    - weil dann auf allen Rechnern auf denen das Skript ausgeführt werden soll MySQL installiert sein müsste, und
    - weil ich dann ständig MySQL-Host und -Passwort einstellen müsste.

    In Textdatei auslagern gefällt mir nicht, ...
    - weil ich man dann zwei Dateien anstatt einer hochladen müsste,
    - weil ich mich beim Löschen des Skriptes dann auch noch auf die Suche nach ebendieser Textdatei machen müsste, und
    - weil diese Textdatei Dateinamen-kritisch wäre. Ich kann sie nicht nennen wie es gerade logisch wäre, sondern muss sie unter dem Dateinamen speichern unter dem sie im Skript referenziert ist.

    Wenn ich die Datei im Skript speichere, ...
    - muss ich genau eine Datei hochladen;
    - kann ich die Datei benennen wie ich will;
    - muss ich sie vorm Einsatz nicht konfigurieren.


    Are you kidding? I've got a reputation to live up to!
    Man if my show doesn't make people vomit, and have an erection at the same time,
    then I would let my audience down!


    Dexter; Staffel 3 Episode 10; ∼10:56

  4. #4
    Benutzerbild von zzz
    Registriert seit
    Apr 2000
    Beiträge
    6.281
    Likes
    0
    die letzten 3 punkte kannst du auch erreichen, indem du mit deinem php script eine text datei erstellst. wenn du's ganz billig haben willst, nennst du sie halt blah.php und schreibst "<? $var=123; ?>" rein. dann kannst du sie einfach per include() aufrufen .. theoretisch 0_o

    am script selber rumzuwerkeln is imho ziemlich unsauber. sollte aber auch gehen. einfach datei öffnen - ändern was du ändern willst und wieder speichern.

  5. #5
    Benutzerbild von psycco
    Registriert seit
    Jul 2001
    Ort
    Kiel/Würzburg
    Beiträge
    6.418
    Likes
    0
    also wenn apache/php den schreibzugriff während des ausführens blocken, dann hast du verloren. dann wirst du eine zweite datei brauchen. wenn sie das nicht tun - wo ist das problem? öffne die datei halt wie jede andere und ändere, was du willst ..

    was ich davon halte schreibe ich nicht. manches geht halt nicht, lebe damit.



    ALL GLORY TO THE HYPNO TOAD

  6. #6
    edgewalker
    Gast
    Mach dein Skript in ein eigenes Verzeichnis, schreib den Defaultwert der Variable für den Fall dass keine Configdatei existiert ins Skript, speichere den Wert am Ende des Skripts in eine Datei in jenem Verzeichnis.

    Dann musst du nur ein Verzeichnis rekursiv hochladen/löschen um das Skript zu installieren/löschen.

    -_-

    Zu der Idee, das Skript an sich selbst herumbasteln zu lassen, sage ich jetzt nichts...

Forumregeln

  • Es ist dir nicht erlaubt, neue Themen zu verfassen.
  • Es ist dir nicht erlaubt, auf Beiträge zu antworten.
  • Es ist dir nicht erlaubt, Anhänge hochzuladen.
  • Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
  •