kostenloser Webspace werbefrei: lima-city


Ab bestimmten Wort in Datei schreiben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    wollnashorn

    Kostenloser Webspace von wollnashorn

    wollnashorn hat kostenlosen Webspace.

    Hallo,
    Ist es möglich ab einem bestimmten Wort in eine Datei zu schreiben?

    ----------------------------
    Inhalt von datei.txt
    Anfang1
    <? include \"forum/include/theme.php\";
    include \"forum/include/navigation.php\";
    include \"forum/include/foren/foren.php\";
    include \"forum/include/navigation5.php\"; ?>
    Ende1

    ----------------------------
    Kann ich jetzt ab \"Anfang1\" was in die Datei schreiben oder ab
    \"Anfang1\" bis \"Ende1\" löschen?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Lies dir mal die Beschreibung von preg_match() bzw. preg_match_all() durch, das sollte dir weiterhelfen. http://de.php.net/preg-match
    Reguläre Ausrücke sind nicht schlecht, wenn man ein bisschen Ahnung davon hat. Bei Problemen kannst du ja einfach nochmal schreiben.
  4. Autor dieses Themas

    wollnashorn

    Kostenloser Webspace von wollnashorn

    wollnashorn hat kostenlosen Webspace.

    Hmm.. Schonmal danke, aber könntest du mal ein kleines Beispiel erstellen?
    Blick da nicht so ganz durch ^^
  5. Ein ganz einfacher Regex für dein Problem könnte zB so aussehen:
    <?
    $data=file_get_contents(\'datei.txt\'); // File als String einlesen
    preg_match_all(\'~Anfang1(.*)Ende1~Uism\',$data,$treffer);
    ?>

    preg_match_all() hab ich hier verwendet falls in dem File mehrere Male Anfang1 und Ende1 vorkommen. Ist hier jetzt zwar nicht der Fall, aber preg_match() würde beim ersten Treffer abbrechen.
    Es wird von preg_match_all() nach Anfang1 und Ende1 gesucht, was dazwischen steht ist dabei egal (.*). Die ganzen Treffer werden in einem mehrdimensionalen Array Names Treffer gespeichert. $treffer[0] enthält dabei wiederum ein Array, indem jeweils der ganze Suchstring gespeichert ist, also Anfang1-was_auch_immer_für_Text-Ende1. In $treffer[1] stehen hingegen nur Arrays, mit dem was zwischen Anfang1 und Ende1 zu finden ist, in deinem Fall also die include-Befehle. Ein Ausgabebeispiel wäre dann zB:
    <?
    echo $treffer[1][0] //liefert den ersten Treffer ohne die Begrenzer Anfang1 und Ende1
    echo $treffer[1][1] //liefert den zweiten Treffer (falls vorhanden) ohne die Begrenzer Anfang1 und Ende1
    ?>

    Wenn du den Teil zwischen Anfang1 und Ende1 löschen willst, würde ich preg_replace() verwenden.
    Ich hoffe, das hilft dir ein wenig weiter.

    So als Anmerkung: Der php-Parser versucht alles was zwischen <? und ?> in deiner Datei steht auch irgendwie zu interpretieren, somit bekommst du keine Ergebnisse geliefert, wie ich beim Testen festgestellt hab. Du musst also vorher entweder die <? und ?> entfernen oder erst noch irgendwie excluden zB mit <\\? und \\?>.
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!