Eydamos: Zeichen am anfang einer Zeile einfügen

Also ich habe einen mehrzeiligen Text, den ich von einem Formular übergeben bekomme, und den ich als String in der Variable $inhalt speichere.

Der Text sieht so aus:

Spionageangriff auf Planet 1 von Planet2 (2:224:29 SpielerA)
21.05.2007 um 10:26:22
Der Spionageangriff wurde zu spät entdeckt. Der Angreifer erhielt Informationen über unsere Flotten, Verteidigungsanlagen, Bodentruppen, Rohstofflager und Gebäude!

Der Angreifer erhielt ebenfalls Informationen über stationierte Raumschiffe fremder Völker!

Spionageangriff auf (2:74:11 )
21.05.2007 um 00:01:46
Folgende Daten hat uns unsere Spionagesonde übermittelt:

Flotte:
Verteidigungsanlagen:
Bodentruppen:
Gebäude:
Rohstofflager:
Erz: 0
Aluminium: 0
Legierungen: 0
Kristalle: 0
Energie: 0

Spionage- und Forschungssonden verglühen im Orbit und kommen nicht mehr zurück!

Spionageangriff auf Basis2 (2:74:11 Spieler B)
20.05.2007 um 14:37:31
Folgende Daten hat uns unsere Spionagesonde übermittelt:

Flotte:
Verteidigungsanlagen:
Bodentruppen:
Gebäude:
Rohstofflager:
Erz: 0
Aluminium: 0
Legierungen: 0
Kristalle: 0
Energie: 4317

Spionage- und Forschungssonden verglühen im Orbit und kommen nicht mehr zurück!

Ich will nun überall, wo Spionageangriff am Anfang der Zeile steht ein # davor machen. Hab das schon probiert mit

$inhalt = preg_replace("/^Spionageangriff/", "#Spionageangriff", $inhalt);

Aber natürlich macht der dann nur ganz am anfang beim ersten Spionageangriff die Raute davor. Ich hab mal hier oder in nem anderen Forum ne möglichkeit gesehen, wie man den String zeilenmäßig durchgehen und dann mit ^ arbeiten konnte. Hab jetzt bestimmt ne Stunde gesucht, aber nichts gefunden, was nur annährend in der Richtung gewesen wäre. Hoffe ihr könnt mir helfen.

  1. Hi,

    Ich hab mal hier oder in nem anderen Forum ne möglichkeit gesehen, wie man den String zeilenmäßig durchgehen und dann mit ^ arbeiten konnte. Hab jetzt bestimmt ne Stunde gesucht, aber nichts gefunden, was nur annährend in der Richtung gewesen wäre. Hoffe ihr könnt mir helfen.

    ja.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. ja.

      Prima genau danach hab ich gesucht.
      @rob Im Handbuch habe ich auch nachgesehen, nur da steht von Modifiern leider nix drin

      Für alle die nicht selber nachlesen wollen hier der richtige code:

        
      $inhalt = preg_replace("/^Spionageangriff/m", "#Spionageangriff", $inhalt);  
      
      
  2. Hi!

    Hab jetzt bestimmt ne Stunde gesucht, aber nichts gefunden, was nur annährend in der Richtung gewesen wäre.

    Im PHP-Handbuch hast du aber nicht nachgeschaut?
    http://de.php.net/manual/de/function.preg-match-all.php

    Schöner Gruß,
    rob

  3. Hallo Eydamos.

    Ich will nun überall, wo Spionageangriff am Anfang der Zeile steht ein # davor machen.

    Also in etwa so?

    $inhalt = 'Spionageangriff … [weiterer Text]';  
    $zeilen = explode("\n", $inhalt);  
      
    for ($i = 0; $i < count($zeilen); ++$i) {  
      
      if (strpos($zeilen[$i], 'Spionageangriff') !== false) {  
      
        $zeilen[$i] = '#' . $zeilen[$i];  
      }  
    }  
      
    $inhalt = implode("\n", $zeilen);
    

    Einen schönen Montag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules