tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
544
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    del_nielo del_nielo ist offline Mitglied
    Registriert seit
    Jul 2005
    Beiträge
    23
    Hallo,
    Ich habe ein Ordner mit mehreren PHP Datein, alle PHP Datein haben die gleichen Zeilen in Zeile 1-4, nun würde ich die Zeile 1-4 gerne durch einen besseren Code ersetzen! Gibt es Programme, die alle PHP Datein in dem Ordner durch gehen würden, und den Code ersetzen würden durch den neuen?
    Wenn ja, welche Programm kann sowas, und wie?
    Gruß
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.802
    Blog-Einträge
    5
    Sowas lässt sich doch ganz einfach selber schreiben:

    PHP-Code:
    <?php

    define
    ('CRLF'"\r\n");

    $newLines = array(
        
    '<?php'.CRLF,
        
    '/*'.CRLF,
        
    ' * Neuer Header'.CRLF,
        
    ' */'.CRLF
    );

    $dir dir('.');

    // Durchlaufe alle Dateien im Verzeichnis
    while (($file $dir->read()) != false) {
        
    // Handelt es sich um eine Datei mit der Endung PHP?
        
    if (is_file($file) && preg_match('/\.php$/i'$file)) {
            if (
    $file == basename(__FILE__)) {
                
    // Diese Datei hier nicht verarbeiten
                
    continue;
            }
            
    // Datei auslesen
            
    $fileContents file($file);
            
    // Anfang ersetzen
            
    array_splice($fileContents0count($newLines), $newLines);
            
    // Datei mit neuem Anfang schreiben
            
    $fp fopen($file'w');
            
    fwrite($fpimplode(''$fileContents));
            
    fclose($fp);
        }
    }

    ?>
    Welchen Code willst du denn ersetzen? Wäre es vielleicht nicht besser, diesen Code in eine Funktion auszulagern? Dann könnte man sich solche Aktionen sparen.
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Viele Editoren, können über "Suchen & ersetzen" auch in mehreren Dateien Veränderungen durchführen. So zum Beispiel auch jEdit, den ich als Allzweckwaffe für viele Coding-Aktionen verwende.

    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  4. #4
    del_nielo del_nielo ist offline Mitglied
    Registriert seit
    Jul 2005
    Beiträge
    23
    Ich sehe grade das der Code manchmal in einer anderen Zeile ist, wie mache ich das denn?

    zB.
    Code :
    1
    2
    3
    4
    5
    6
    
    <table cellspacing="0" cellpadding="0" border="0" width="760">
    <tr>
        <td width="130"><img src="../images/logo.gif" width="130" height="78" border="0" alt=""></td>
        <td width="630" background="../images/bglogo.gif" align="right" valign="top" class="weissklein">
            <img src="../images/pix1.gif" width="1" height="1" border="0" alt=""><bR><img src="<? echo $domain ?>/banner/banner.jpg" border="0" alt="">&nbsp;<br>
            <img src="../images/pix1.gif" width="1" height="2" border="0" alt=""><bR>

    Der ist überall wo anders, und sollte nun überall in den Datein in den Code umgeschrieben werden:
    Beispiel:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    <table cellspacing="1" cellpadding="0" border="0" width="760" bgcolor="white" style="border: 1px solid black">
    <tr>
        <td width="130" bgcolor="#7BB5DE" valign="top">
        <!-- MENU -->
            <img src="../images/bild.jpg" width="130" height="86" border="0" alt=""><br>
            <table cellspacing="0" cellpadding="0" border="0" width="100%" height="1">
            <tr>
                <td bgcolor="white"><img src="../images/pix1.gif" width="1" height="1" border="0" alt=""></td>
            </tr>

    Wie würde ich dieses nun machen? (bitte ein Beispiel)
    Ich mache dieses nur einmal, darum bräuchte ich nichts extra aufbauen, was es vereinfachen würde, weil das wäre ein zu großer Aufwand, weil die funktionen für alles dann noch extra angepasst werden müßten!
    Gruß
     

  5. #5
    Avatar von steff aka sId
    steff aka sId steff aka sId ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Mannheim
    Beiträge
    341
    Wenn du ein php script schreiben willst dann schau dir mal die Funktion preg_replace an ist zwar eigentlich für reguläre Ausdrücke aber die lässt sich für so etwas missbrauchen. Der kannste halt nen ganzen String übergeben und nen 2. String der den nach dem gesucht wird ersetzen soll.

    Gruß Steff
     

  6. #6
    del_nielo del_nielo ist offline Mitglied
    Registriert seit
    Jul 2005
    Beiträge
    23
    Meinst du jetzt in dem dem Programm nach preg_replace suchen (Unter Search - Find&Replace)? Weil dort kann man nur eine Zeile ersetzen! Aber ich will ja mehrere Zeilen auf einmal Umschreiben, weil es kann ja auch mal sein, das eine Zeile öfters ist!
    Oder wie meinst du das jetzt?
     

  7. #7
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    EIn Zeilenumbruch kann, wie in PHP auch, durch \n, \r bzw. \n\r dargestellt werden, wenn Du mit regulären Ausdrücken suchst.

    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  8. #8
    del_nielo del_nielo ist offline Mitglied
    Registriert seit
    Jul 2005
    Beiträge
    23
    Also dann in die Suchleiste das eingeben?

    Normaler Code:
    Code :
    1
    2
    
                <strong>Du hast <font color="#FF0000"><? echo $nachr ?></font> neue Nachrichten in deinem Posteingang.</strong>
                <br><img src="../images/pix1.gif" width="1" height="3" border="0" alt=""><br>

    Code mit dem \n\r
    Code :
    1
    
    <strong>Du hast <font color="#FF0000"><? echo $nachr ?></font> neue Nachrichten in deinem Posteingang.</strong> \n\r <br><img src="../images/pix1.gif" width="1" height="3" border="0" alt=""><br>

    Oder wie meinst das?
     

  9. #9
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Im Prinzip ja, allerdings sind auch die Tabs oder Leerzeichen bei Deinem Beispiel-String zu berücksichtigen:
    Code :
    1
    
    (\t|\ )*Zeile 1(\t|\ )*(\n\r|\n|\r){1}(\t|\ )*Zeile 2
    Ich bin mir gerade nicht sicher, ob man im Ausdruck Leerzeichen escapen muss oder nicht.

    Machst Du den Versuch mit jEdit? Dann markiere "Regular Expressions", öffne alle Dateien, in denen Du etwas ändern willst und markiere "All Buffers".

    Gruß hpvw

    EDIT: Vorsichtshalber solltest Du nicht beim ersten Versuch auf "Replace All" klicken.
    Geändert von hpvw (03.02.06 um 21:32 Uhr)
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

Ähnliche Themen

  1. » Excel Teiltext in Zelle durch anderen Text ersetzen.
    Von PHPProgi im Forum Office-Anwendungen
    Antworten: 2
    Letzter Beitrag: 22.10.10, 21:49
  2. Platzhalter durch PHP-Code ersetzen
    Von Aragon83 im Forum PHP
    Antworten: 9
    Letzter Beitrag: 24.09.09, 20:10
  3. [RCP] View durch einen anderen View ersetzen
    Von lowskilla im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 11.09.09, 09:24
  4. code durch anderen code ersetzen; seo
    Von Freakz91 im Forum PHP
    Antworten: 7
    Letzter Beitrag: 08.05.08, 15:06
  5. String durch Code ersetzen
    Von tomi im Forum PHP
    Antworten: 2
    Letzter Beitrag: 01.06.04, 15:53