Christian Sturm: Tabstop automatisch setzen...?

Hallo liebes Forum,

ich nutze auf einer Webseite von mir TinyMCE...
Euch dürfte das Tabstop-Problem in Html wohl bekannt sein.

Ich regele das etwa so:

--- styles.css ---
.tab {width: 120px; margin-right: 30px; float: left;}
--- /styles.php ---

--- ausgabe.php ---
<span class="tab">Provision:</span>1 Nettokaltmiete zzgl.MwSt<br><br>
--- /ausgabe.php ---

Mein Problem:
Ich habe den kompletten Inhalt in einem String... (MySQL-Spalte)
Die unterschiedlichen Zeilen sind durch <br> gekennzeichnet.

Ich möchte den Tabstop automatisch setzen lassen, und zwar unter der
Bedingung:

  • Lesen bis <br>,
  • überprüfen ob Doppelpunkt im Teilstring vorhanden ist,
  • Wenn Doppelpunkt vorhanden ist hinter Doppelpunkt </span> einfügen, und am Zeilenanfang (also letzte <br>-Position) ein <span class="tab"> einfügen.

Um ehrlich zu sein, ich fühle mich damit überfordert, muß es allerdings realisieren.... (ist nen Kundending/Rekla).

Sowas muß es doch schon irgendwo geben....

Lieber Gruß
Chris

  1. Hi,

    • Lesen bis <br>,
    • überprüfen ob Doppelpunkt im Teilstring vorhanden ist,
    • Wenn Doppelpunkt vorhanden ist hinter Doppelpunkt </span> einfügen, und am Zeilenanfang (also letzte <br>-Position) ein <span class="tab"> einfügen.

    Sieht fast aus wie reguläre Ausdrücke... Also die Funktionen, die mit ereg oder preg anfangen --> Siehe PHP-Doku.

    E7

    1. Wow, ich bin begeistert...

      Vielen Dank für die Ansätze...!!! daß hilft mir schon erheblich weiter...
      Wünsche Euch noch einen angenehmen Tag....

      Lieber Gruß
      Chris

  2. Hallo,

    kurze Verständnisfrage- würdest Du Dir nicht einiges vereinfachen, wenn Du in HTML eine Definitionsliste benutzt?

      
    <dl>  
    <dt>Provision:<dt>  
    <dd>eine Nettowasauchimmer</dd>  
    ...  
    <dl>  
    
    

    dann könntest Du ganz leicht mit CSS die Elemente ein- und ausrücken wie Du willst.
    mit

      
    $output = "<dl>";  
    ...  
    $output .= "</dl>";  
    
    

    in den Punkten dann mit foreach Datenbankeintrag_n Wert_n
    $output .= "<dt>", $Wert_n, "</dt>\n";
    foreach Datenbankeintrag Wert_n
    $output .= "<dd>", $Wert_n, "</dd>\n";

    oder ähnlich den String zusammenbasteln. Das müßte doch so ungefähr hinhauen (sofern man die Syntax an PHP anpasst ;) ), oder?

    netten Tag
    ^da Powl

  3. gudn tach!

    • Lesen bis <br>,

    oder:
    $zeilen=[link:http://php.net/explode@title=explode]('<br>', $string);

    • überprüfen ob Doppelpunkt im Teilstring vorhanden ist,
      
    $pos=[link:http://php.net/strpos@title=strpos]($zeilen[$i], ':');  
    if($pos!==false){  
      // gefunden an $pos  
    }
    
    • Wenn Doppelpunkt vorhanden ist hinter Doppelpunkt </span> einfügen

    mit substr den string beim doppelpunkt teilen und dann noch neuen string '</span>' dazwischenklemmen.

    oder die abfrage und das ersetzen in einem schritt erledigen: per preg_replace mit limit=1 und dem regulaeren ausdruck /:/:</span>/.

    und am Zeilenanfang (also letzte <br>-Position) ein <span class="tab"> einfügen.

    $zeilen[$i]='<span class="tab">'.$zeilen[$i];

    am schluss dann wieder alls zusammensetzen mit implode.

    prost
    seth