Ankündigung

Einklappen
Keine Ankündigung bisher.

Variablen in einer Konfigurationsdatei speichern ohne diese auszuführen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variablen in einer Konfigurationsdatei speichern ohne diese auszuführen

    Hallo,
    wie der Titel schon sagt: Ich brauche eine Konfigurationsdatei, in der ein paar Werte drinstehen. Ich könnte jetzt eine php-Datei nehmen und sie includen, allerdings will ich keinesfalls, dass sie ausgeführt wird. Ich wüsste schon irgendwie, wie ich es machen könnte, aber geht das auch einfacher ohne irgendwelche umständlichen Mittel zur Textmanipulation?

    Danke & Gruß
    devzero

  • #2
    Also ein PHP-Array möchtest du nicht verwenden.
    Dann könntest du ein INI-File anlegen und mit PHP: parse_ini_file - Manual
    in ein PHP-Array überführen, falls du das meintest.

    Kommentar


    • #3
      include die datei und verhinder das sie ausgeführt wird ?

      index.php ( diese datei included )
      PHP-Code:
      <?php

      define
      ("ICH_BIN_EIN_ANWENDUNGSEIGENES_MECHANISMUSS_DING_DAS_VERHINDERT_DAS_ETWAS_AUSGEFÜHRT_WIRD""hi!");

      include(
      "horst.php");

      ?>
      horst.php ( diese Datei wird included )
      PHP-Code:
      <?php

      if ( !defined("ICH_BIN_EIN_ANWENDUNGSEIGENES_MECHANISMUSS_DING_DAS_VERHINDERT_DAS_ETWAS_AUSGEFÜHRT_WIRD") ) die("ne, so schon ma garnich. Ruf das <a href=\"index.php\">Hauptscript</a> auf !!");

      $_CONFIG["ist"]["ein"]["value"] = "Horst ist schön!";
      $_CONFIG["ist"]["noch"]["ein"]["value"] = "Horst ist blond!";

      ?>
      Setz doch einfach das um was du "willst".
      [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

      Kommentar


      • #4
        Zitat von chesssteve Beitrag anzeigen
        Dann könntest du ein INI-File anlegen und mit PHP: parse_ini_file - Manual
        in ein PHP-Array überführen, falls du das meintest.
        Ok das sieht schonmal gut aus, allerdings sind INI's ja eher unter Windows gebräuchlich. Nach deiner Antwort ist mir direkt XML eingefallen, da gibts xml_parse. Werde mir das mal anschauen.

        Zitat von tr0y Beitrag anzeigen
        include die datei und verhinder das sie ausgeführt wird ?
        Das Problem ist halt, dass ich nicht kontrollieren kann/will, was die Datei enthält

        Danke an euch beide, werd dann mal xml anpacken

        Kommentar


        • #5
          XML - würg

          Sieh dir mal: Zend Framework: Documentation: Zend_Config - Zend Framework Manual
          an, INI- + XML-Configfiles - im Source des Zend-FW kannst du dir dann ja inspirationen holen

          Kommentar


          • #6
            Ich könnte jetzt eine php-Datei nehmen und sie includen, allerdings will ich keinesfalls, dass sie ausgeführt wird.
            Was included wird, wird auch ausgeführt.

            Wenn es darum geht, dass eine Config-Datei nicht durch Angabe der URL über HTTP aufgerufen/ausgeführt werden kann, gibt es neben den angesprochenen Lösungen noch die Möglichkeit, die entsprechende Datei außerhalb des Docroots des Webservers abzulegen beziehungsweise sie (oder ihr Verzeichnis) per Servereinstellung (unter Apache etwa per .htaccess-Datei) für HTTP-Zugriffe zu blockieren. Die genaue Syntax habe ich nicht im Kopf, aber das dürfte sich sehr leicht finden lassen.

            allerdings sind INI's ja eher unter Windows gebräuchlich
            XML - würg
            Von solchen Verallgemeinerungen freimachen ihr euch müsst.

            Kommentar


            • #7
              Zitat von chesssteve Beitrag anzeigen
              XML - würg

              Sieh dir mal: Zend Framework: Documentation: Zend_Config - Zend Framework Manual
              an, INI- + XML-Configfiles - im Source des Zend-FW kannst du dir dann ja inspirationen holen
              XML nicht gut? Ich dachte XML ist doch eigentlich Standard und eine gute Lösung? Weshalb sind INIs besser?
              Und wow, das nenn ich mal eine gute Doku. Die Sourcen werde ich mir vielleicht echt mal anschauen

              Zitat von mermshaus Beitrag anzeigen
              Was included wird, wird auch ausgeführt
              Genau das wollte ich damit aussagen, wenns nicht so ankam entschuldige mich es ist schon spät
              Ob die Datei über die Adresse erreichbar ist, ist nicht entscheidend.

              Kommentar


              • #8
                Naja leider ist die Doku doch nicht ganz so gut, wie sie den Anschein erweckt, da fehlen doch an einigen Stellen wichtige Punkte die auch nirgends richtig dokumentiert sind... Aber von dem Dokus die es gibt ist Zend wohl eine der besseren.
                "My software never has bugs, it just develops random features."
                "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                Kommentar


                • #9
                  Zitat von devzero Beitrag anzeigen
                  XML nicht gut? Ich dachte XML ist doch eigentlich Standard und eine gute Lösung? Weshalb sind INIs besser?
                  Das war lediglich meine persönliche Präferenz.
                  Wenn du XML gut findes, why not.

                  @mermshaus gestern kam so ein Star Wars Film, oder?
                  @Paul.Schramenko Tolle Aussage, welche Stellen fehlen dir denn?

                  Kommentar


                  • #10
                    Zitat von devzero Beitrag anzeigen
                    Ok das sieht schonmal gut aus, allerdings sind INI's ja eher unter Windows gebräuchlich.
                    Eine .ini ist eine Textdatei in einem bestimmten Format, genau wie CSV, genau wie XML - das hat nix mit dem Betriebssystem zu tun. Es kommt auf den Anwendungszweck an, was "besser" geeignet ist... in deinem (einfachen) Fall würde ich auch eher zur ini tendieren, da wäre XML oversized.
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11
                      in deinem (einfachen) Fall würde ich auch eher zur ini tendieren, da wäre XML oversized.
                      Tja, wer weiß das schon.
                      in der ein paar Werte drinstehen
                      Von den paar Werten müssen nur ein paar mehrdimensional werden und schon wirds unübersichtlich mit ini.
                      [COLOR="#F5F5FF"]--[/COLOR]
                      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                      [COLOR="#F5F5FF"]
                      --[/COLOR]

                      Kommentar


                      • #12
                        Zitat von mermshaus Beitrag anzeigen
                        Was included wird, wird auch ausgeführt.

                        Wenn es darum geht, dass eine Config-Datei nicht durch Angabe der URL über HTTP aufgerufen/ausgeführt werden kann, gibt es neben den angesprochenen Lösungen noch die Möglichkeit, die entsprechende Datei außerhalb des Docroots des Webservers abzulegen beziehungsweise sie (oder ihr Verzeichnis) per Servereinstellung (unter Apache etwa per .htaccess-Datei) für HTTP-Zugriffe zu blockieren. Die genaue Syntax habe ich nicht im Kopf, aber das dürfte sich sehr leicht finden lassen.




                        Von solchen Verallgemeinerungen freimachen ihr euch müsst.
                        Code:
                        order deny, allow
                        deny from all
                        allow from 127.0.0.1
                        und du kannst deine datei auch im webroot ablegen

                        beispielsweise erreichbar über http://example.org/this/is/the/config

                        die .htaccess schützt dann das verzeichniss /config
                        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                        Kommentar

                        Lädt...
                        X