Ankündigung

Einklappen
Keine Ankündigung bisher.

In php datei suchen

Einklappen

Neue Werbung 2019

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

  • In php datei suchen

    Hey Leute,

    in der Hoffnung das jemand eine Lösung weiß, poste ich mal hier rein

    Ich habe keinen Code den ich euch posten könnte, weil ich absolute nicht weiß wie ich das anstellen soll, hatte schon viele Fehlschläge und ich weiß auch gar nicht ob das möglich ist.

    Folgendes Problem:

    in der database.php steht z.B.
    PHP-Code:
        $databases = array('Benutzer' => array('host' => 'localhost''db'   => 'datenbankname''user' => 'benutzername''pass' => 'passwort') ); 
    Mein Vorhaben, ich möchte das in der controller.php die database.php ausgelesen wird und die Werte: localhost, datenbankname, benutzername, etc. ersetzt werden durch xyz.
    Das Problem: Wäre der Eintrag in der database.php immer der selbe (also immer der selbe datenbankname,benutzername, etc.) wäre das kein Problem, ist es aber nicht. Es stehen immer anderer Werte dort. Wie schaffe ich es nun dennoch das die Werte ausgelesen werden und auch ersetzt?...

    Meiner Meinung nach wäre die beste Lösung, wenn man irgendwie an das Array rankommen könnte und sie so matchen, aber ich weiß nicht wie und ob das möglich ist, bin schon voll am verzweifeln...


    Vielen Dank für eure Hilfe!!

  • #2
    Zitat von yugox Beitrag anzeigen
    in der Hoffnung das jemand eine Lösung weiß, poste ich mal hier rein
    Seit April dabei und schon falsches Forum
    siehe wer darf hier posten

    Zitat von yugox Beitrag anzeigen
    Das Problem: Wäre der Eintrag in der database.php immer der selbe (also immer der selbe datenbankname,benutzername, etc.) wäre das kein Problem,
    Wie viele Datenbanken machst du denn auf einmal auf?
    Normalerweise hat man eine Datenbank und hat demzufolge diese Zugangsdaten nicht mehr zu verändern.

    Kommentar


    • #3
      Hach, dachte das nur hier die Profis posten

      Ich habe mehrere Datenbanken und es sollen auch nicht mehrere auf einmal aufgemacht werden, es geht nur darum ein Skript anzufertigen, die diese Änderung automatisch vornehmen, so dass man nicht ständig selber in die Datei muss und die Werte dort einzeln ändern.

      Kommentar


      • #4
        Irgendwie begreife ich das wohl nicht richtig.
        Du musst die Zugangsdaten (und um das geht ja hier) der Datenbank doch sowieso mindestens einmal eingeben,.diese speicherst du pro Projekt einmalig ab und gut ist.
        Es sei denn du hast mehrere Datenbanken für ein Projekt(Shop, Forum, Rezeptseite etc.), was aber nicht nötig ist, bzw. es sogar total unsinnig wäre.

        Kommentar


        • #5
          OKay.. Eigentlich ist es auch völlig egal wie viele Datenbanken ich benutze, es geht nur darum ob es eine Möglichkeit gibt dies irgendwie zu bewerktstelligen oder nicht.

          Kommentar


          • #6
            Packe deine Zugangsdaten in eine Config-Datei, die du außerhalb deines Webspaces speicherst, und lade die Daten an passender Stelle in dein PHP-Skript.
            Für jede deiner Datenbanken hast du eine Config-Datei und brauchst in den PHP-Skripten nichts zu ändern.
            Und: Skripte, die Skripte erstellen oder ändern, führen zu unübersichtlichen Strukturen.

            Kommentar


            • #7
              Zitat von jspit Beitrag anzeigen
              Für jede deiner Datenbanken hast du eine Config-Datei und brauchst in den PHP-Skripten nichts zu ändern.
              Und: Skripte, die Skripte erstellen oder ändern, führen zu unübersichtlichen Strukturen.
              Und zu weiteren Problemen. z.B. cachen viele Webserver PHP-Code. Wenn dieser nachträglich verändert wird, kanns dann vorkommen, dass der Server weiter mit dem alten Code läuft, weil sowas einfach nicht vorgesehen ist. PHP-Code sollte als statisch und nicht als dynamisch betrachtet werden.

              Kommentar


              • #8
                Zitat von yugox Beitrag anzeigen
                in der database.php steht z.B.
                PHP-Code:
                 $databases = array('Benutzer' => array('host' => 'localhost''db' => 'datenbankname''user' => 'benutzername''pass' => 'passwort') ); 
                Mein Vorhaben, ich möchte das in der controller.php die database.php ausgelesen wird und die Werte: localhost, datenbankname, benutzername, etc. ersetzt werden durch xyz.
                Wozu? Du kannst einfach ein neues Array auf $databases zuweisen und überschreibst die Werte (dynamisch).
                PHP-Code:
                $databases = array('Benutzer' => array('host' => 'xyz''db'   => 'xyz''user' => 'xyz''pass' => 'xyz') ); 
                Es sei denn, du willst die database.php physisch verändern (ie. den Quellcode ändern und die Datei neu schreiben. DAS ist allerdings nicht empfehlenswert!
                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  PHP-Code:
                  <?php
                  $files 
                  = ["projekt1/database.php""projekt2/database.php""projekt3/database.php"];
                  $databaseConfigs = [];
                  foreach(
                  $files as $file) {
                      include 
                  $file;
                      
                  $databaseConfigs[$file] = $databases;
                  }

                  echo 
                  "<pre>";
                  print_r($databaseConfigs);
                  exit;
                  Meinst du sowas?
                  Tutorials zum Thema Technik:
                  https://pilabor.com
                  https://www.fynder.de

                  Kommentar


                  • #10
                    So ist das falsch. In database.php müsste etwas stehen in der Art:
                    PHP-Code:
                    <?php return array(
                        
                    'host' => 'server1',
                        
                    'username' => 'user1',
                        
                    'password' => 'pass1',
                        
                    'database' => 'database1'
                    );
                    Und in deiner Schleife:
                    PHP-Code:
                    $databaseConfigs[$file] = include $file
                    Aber warum überhaupt PHP-Dateien? Warum schreibst du nicht normale Konfigurationsdateien?

                    Kommentar


                    • #11
                      Hallo liebe Helfer.

                      Erst einmal möchte ich mich bei allen Bedanken, die versuchen zu helfen, ihr seit großartig!

                      Ich habe das Gefühl euch verwirrt es etwas das es eine config Datei ist mit einer DB-Anbidung

                      Also, ich habe keinen Zugriff auf eine DB, ich kann auch die Datei nicht ändern, ich muss sie so wie sie ist bearbeiten. Wie gesagt, mir geht es wirklich nur darum wie ich über ein Skript eine Datei lesen und dort bestimmte Werte verändern kann.

                      Ein anderes Beispiel für ein vielleicht besseres Verständnis.

                      In einer PHP-Datei (ja es steht halt leider alles in der PHP-Datei) befindet sich irgendwo bei ganz viel Code folgendes (und das folgende befindet sich mehrmals in der Datei -> PS: die Werte login_bew.html, login_form.html, heißen bei jedem Kunden anders, weswegen ich mich nicht daran orientieren kann! )

                      PHP-Code:
                       'LOGIN' => 'login.html',  'LOGIN_BEW' => 'login_bew.html',  'LOGIN_FORM' => 'login_form.html',  'LOGIN_MENU' => 'login.menu.html',  'LOGOUT_DONE' => 'logout_done.html'
                      nun möchte ich von meinem Skript in meiner controller.php diesen Text ändern in

                      PHP-Code:
                       'LOGIN' => 'login2222.html',  'LOGIN_BEW' => 'login_bew2222.html',  'LOGIN_FORM' => 'login_form2222.html',  'LOGIN_MENU' => 'login.menu2222.html',  'LOGOUT_DONE' => 'logout_done222.html'
                      Mein erster Gedanke, man muss sich doch irgendwie an sowas wie 'LOGIN', 'LOGIN_BEW', etc. orientieren können, um an das Wort daneben zu kommen.

                      Ich hatte auch schon an sowas gedacht:


                      PHP-Code:
                      // Provides: <body text='black'>
                      $bodytag str_replace("%body%""black""<body text='%body%'>"); 
                      Aber bei mir muss ja dort wo "
                      <body text='%body%'>" steht, die Datei rein, wodruch es irgendwie leider auch nicht ganz funktioniert. Aber soetwas in der Art bräuchte ich.

                      Es soll in der Datei nur ein bestimmter Bereich/Text ersetzt werden.

                      PS: An Zeilen kann ich mich auch nicht orientieren, weil der gesuchte String/Array auch nicht immer die selbe Position hat.



                      Ich habe auch das Gefühl, dass man nur einen String und keinen kleinen Abschnitt suchen kann...


                      Danke nochmals!

                      LG
                      Yugox

                      Kommentar


                      • #12
                        dann probier doch mal preg_replace
                        [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

                        Kommentar


                        • #13
                          Und wie würde es damit:
                          PHP-Code:
                          'LOGIN' => 'login.html',
                          'LOGIN_BEW' => 'login_bew.html',
                          'LOGIN_FORM' => 'login_form.html',
                          'LOGIN_MENU' => 'login.menu.html',
                          'LOGOUT_DONE' => 'logout_done.html'


                          funktionieren? Bedenke in der String suche kannst Du "login.html", "login_bew.html", etc. nicht verwenden (die müssen ja irgendwie ausgelesen werden, da sie variieren. Verwendbar ist also nur 'LOGIN', 'LOGIN_BEW', (da diese statisch sind) etc.

                          LG
                          yugox

                          Kommentar


                          • #14
                            yugox Bitte verwende Code-Tags, anstatt der wilden Eigen-Formatierungen! Danke.
                            Competence-Center -> Enjoy the Informatrix
                            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                            Kommentar


                            • #15
                              gibt es hier bzgl. keine Ideen mehr?

                              Kommentar

                              Lädt...
                              X