Es werden ausschließlich für die Funktion des Forums notwendige Cookies verwendet!

Unsere Datenschutzerklärung


php: Bestimmte Textteile in einem File ersetzen
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: php: Bestimmte Textteile in einem File ersetzen

  1. #1
    Super-Moderator Avatar von berny
    Registriert seit
    09.10.2010
    Beiträge
    617
    Blog-Einträge
    3
    Downloads
    65
    Uploads
    8

    php: Bestimmte Textteile in einem File ersetzen

    Hi Leute
    Stehe wieder mal vor einer kleinen Aufgabe:

    Wie kann ich auf einfache Weise in einem Textfile folgenden Code mittels script durch nachfolgenden Code ersetzen:
    Code:
    $action = array(
    "do1"=>"eins",
    "do2"=>"zwei",
    "do3"=>"drei"
    );
    Code:
    $action = array(
    "do1"=>"elf",
    "do2"=>"zwölf",
    "do3"=>"dreizehn"
    );
    Wobei es mir darum geht, nur die Änderungen zu ersetzen, nicht den kompletten Text.
    Dies deshalb, weil es letztlich nur um die Änderung zwischen den Klammern geht, es kann ja sein, dass der Aufbau des Files auch anders ist, dieser Array kommt aber immer wieder vor.

    Hat da jemand auf die Schnelle eine Idee ?

    thx
    Berny
    http://www.best-data.at
    Hier erfährt man fast alles über mich

  2. #2
    Administrator Avatar von KlausK
    Registriert seit
    29.09.2010
    Beiträge
    3.346
    Blog-Einträge
    1
    Downloads
    371
    Uploads
    539
    Spontan fällt mir VBA (Excel) ein. Umbenennen von Dateien, ersetzen von Texten, lässt sich damit schnell realisieren.
    Vorallem wenn es um tausende Dateien geht. Mit "MacroX" lassen sich auch große Mengen bewältigen!

  3. #3
    Super-Moderator Avatar von berny
    Registriert seit
    09.10.2010
    Beiträge
    617
    Blog-Einträge
    3
    Downloads
    65
    Uploads
    8
    Ähm.....
    mittels script
    Muß also ergänzen:
    mittels php-script.

    Die Idee dahinter ist das direkte Online-Editieren bestimmter Files mittels webbasiertem Formular.

    Letztlich muß ich den Inhalt des arrays ändern, dies aber direkt in das file schreiben.
    Das Problem kann sein, dass der Array nicht immer an der gleichen Stelle steht, oder dass die Reihenfolge der array-Definitonen nicht gleich ist...
    Berny
    http://www.best-data.at
    Hier erfährt man fast alles über mich

  4. #4
    Erfahrener Benutzer
    Registriert seit
    04.10.2010
    Beiträge
    123
    Downloads
    1
    Uploads
    0
    Kannst du ein bisschen mehr Details schreiben?
    Aber die Suche nach gewissen Worten ist kein Problem und das ersetzen dieser Worte ist genauso kein Problem, aber es ist schwer ein Script zu bauen, wenn man nicht ganz das Beispiel versteht

  5. #5
    Super-Moderator Avatar von berny
    Registriert seit
    09.10.2010
    Beiträge
    617
    Blog-Einträge
    3
    Downloads
    65
    Uploads
    8
    Naja:
    es sind verschiedene php-files.
    Darin stehen alle möglichen codes, und unter anderem ein array, in dem wie oben beschrieben Keys und Values definiert werden.

    Diese php-Files gilt es zu editieren, wobei ich einfach die entsprechenden keys und values manuel ändern möchte.
    wie oben beschrieben, zB beim key do1 das value eins auf elf umändern.

    Somit steht in diesem php-File hardgecodet ein anderer Wert drinnen.

    Es wäre leicht, wenn alle files den gleichen Aufbau hätten, aber das ist nicht so, bei einem File kann der array in der Zeile 1 stehen, beim anderern erst in Zeile 5
    ebenso könnte es sein, dass bei einem File der array einfach in einer Zeile steht, bei einem anderen wiederum in verschiedenen Zeilen.
    Also nach Zeilen zu arbeiten macht keinen Sinn.

    Ich muß eben den Array (diese Zeilen sozusagen)finden, zerlegen, die Werte zuweisen, dann wieder zusammenbauen und in das file schreiben.

    Das ganze wäre aber günstig mittels einem Formular zu machen, also der Key = Inputname, Value = Inputvalue.

    Stellt sich eben die Frage, wie macht man das am einfachsten...
    Berny
    http://www.best-data.at
    Hier erfährt man fast alles über mich

  6. #6
    Erfahrener Benutzer
    Registriert seit
    04.10.2010
    Beiträge
    123
    Downloads
    1
    Uploads
    0
    Kommt der Wert denn nur EINMALIG vor, also kannst du einfach ein "suche & ersetzen" machen, oder kann es sein, dass der Wert an einer anderen Stelle nochmal steht, da aber erhalten bleiben soll?

  7. #7
    Erfahrener Benutzer
    Registriert seit
    04.10.2010
    Beiträge
    123
    Downloads
    1
    Uploads
    0
    Der Code ist ungetestet und bitte VORHER ein Backup anlegen!!
    PHP-Code:
    <?php 

    //Zu aendernte Dateien
    $datei_array = ('erste_datei.php',
                    
    'zweite_datei.php',
                    
    'dritte_datei.php');

    //Inhalt je Datei aendern (erste Demission gibt die Datei an, zweite Demission das Wort in der Datei
    //dritte Demission gibt an ob es zum Suchen oder zum Ersetzen ist
    $inhalt_change[0][0]['suche']     = "erster_alter_wert_erste_datei";
    $inhalt_change[0][0]['ersetzen']     = "erster_neuer_wert_erste_datei";
    $inhalt_change[0][1]['suche']     = "zweiter_alter_wert_erste_datei";
    $inhalt_change[0][1]['ersetzen']     = "zweiter_neuer_wert_erste_datei";
    $inhalt_change[0][2]['suche']     = "dritter_alter_wert_erste_datei";
    $inhalt_change[0][2]['ersetzen']     = "dritter_neuer_wert_erste_datei";
    $inhalt_change[1][0]['suche']     = "erster_alter_wert_zweite_datei";
    $inhalt_change[1][0]['ersetzen']     = "erster_neuer_wert_zweite_datei";
    $inhalt_change[2][0]['suche']     = "erster_alter_wert_dritte_datei";
    $inhalt_change[2][0]['ersetzen']     = "erster_neuer_wert_dritte_datei";
                                    
    for(
    $i=0$i<count($datei_array); $i++)
    {
        
    //Datei auslesen
        
    $datei_handle "";
        
    $datei_handle fopen($datei_array[$i], "w+");
        
        
    //Werte ersetzen
        
    for($j=0$j<count($inhalt_change[$i]);$j++)
        {
            
    $datei_inhalt str_replace($inhalt_change[$i][$j]['suche'], $inhalt_change[$i][$j]['ersetzen'], $datei_handle);
        }
        
        
    //Datei wieder speichern
        
    fwrite($datei_handle$datei_inhalt);
        
    fclose($datei_handle);
    }

    ?>
    Es ist in einem 3D Array programmiert! Wenn du die Werte aus einer Datenbank nehmen würdest, könnte man das ganze ein bisschen netter programmieren und den Array sauber aufbauen! Denn der 3D Array ist so etwas "unsauber", aber sollte seinen Dienst tun!
    Geändert von Freelancer (19.10.2010 um 23:06 Uhr)

  8. #8
    Super-Moderator Avatar von berny
    Registriert seit
    09.10.2010
    Beiträge
    617
    Blog-Einträge
    3
    Downloads
    65
    Uploads
    8
    er kommt nur einmal vor.
    Es kann aber auch sein, dass zB in einem File der Array aus 4 oder 5 keys besteht, in einem anderen aus 6 oder 7.
    Diese werden derzeit ausgelesen und einfach in mehrere Formularfelder (input type=text name=key value=value) eingelesen.
    Dort möchte ich dann den Wert value ändern, und dann wieder in die Datei reinschreiben.


    Oups, zu spät gesehen....
    thx, werde das mal testen und berichten (aber nicht mehr heute ;-) )
    Berny
    http://www.best-data.at
    Hier erfährt man fast alles über mich

  9. #9
    Erfahrener Benutzer
    Registriert seit
    04.10.2010
    Beiträge
    123
    Downloads
    1
    Uploads
    0
    Ich habe den Code so aufgebaut, dass die erste Datei 3 Werte hat, die zweite und dritte jeweils nur einen, aber das kannst du ja selber erweitern! Bedenke aber, dass die zu lesende und zu beschreibende Datei einen CMOD Recht von 777 haben MUSS!!!! Wenn du dieses Schreib- und Leserecht nicht vergeben kannst, oder willst, kann man das ganze noch ein bisschen umbauen und du kannst die Datei über einen FTP öffnen und wieder schreiben! (Wird aber nur in den seltensten Fällen gemacht)

  10. #10
    Super-Moderator Avatar von berny
    Registriert seit
    09.10.2010
    Beiträge
    617
    Blog-Einträge
    3
    Downloads
    65
    Uploads
    8
    Jop, das mit den Schreibrechten ist eh klar
    Ansich ist es kein Problem, diese Datein mit 777 anzulegen, auch wenn man darin schreiben kann.
    Muß dann eben in den scipt diverse hackerchen abfangen müssen
    Berny
    http://www.best-data.at
    Hier erfährt man fast alles über mich

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 09.10.2010, 12:36

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •