Ankündigung

Einklappen
Keine Ankündigung bisher.

Chopro in HTML

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Chopro in HTML

    Hallo Leute,
    ich hab da ein Problem und zwar schreibe ich an einem PHP-Script das eine Chordpro-Datei liest und diese in HTML ausgeben soll.
    Das heißt das Script soll z. B.:

    {t:Stand By Me} => <h1>Stand By Me</h1>
    {st:Ben E King} => <h2>Ben E King</h2>

    umwandeln. Mit Array ist da nicht viel zu machen weil ich ja der Mengenklammer (}) nur eine Ersetzung geben kann (</h1> o. </h2>).

    Kann ich den Text dazwischen einer Variable zuweisen? (Stand By Me, Ben E King)

    Bin zur Zeit etwas überfordert

  • #2
    Poste doch mal deinen Ansatz und eine Chordpro Beispiel Datei.

    Kommentar


    • #3
      Kann ich den Text dazwischen einer Variable zuweisen?
      Ja sicher doch.

      Kommentar


      • #4
        wieso löscht Du nicht einfach die klammern und am anfang alles bist zum :

        beispiele sind immer gut.

        Kommentar


        • #5
          Zitat von onlineimp Beitrag anzeigen
          ..Mit Array ist da nicht viel zu machen
          Wie auch immer die Lösung am Ende aussehen mag, die Ersetzungen in Arrays anzulegen bietet sich fast immer an.

          Zitat von onlineimp Beitrag anzeigen
          Kann ich den Text dazwischen einer Variable zuweisen?
          Das kannst du auch direkt mit regulären Ausdrücken machen.

          Denkansatz:
          PHP-Code:
          $pattern = [
            
          '~\{t:([^\}]+)\}~',
            
          '~\{st:([^\}]+)\}~',
          ];

          $replace = [
            
          '<h1>$1</h1>',
            
          '<h2>$1</h2>',
          ];

          $s2 preg_replace($pattern$replace$text); 
          Ob sich dieser Ansatz was taugt kann mit den wenigen Informationen aus dem Beitrag #1 nicht eingeschätzt werden.
          Unklar ist auch, was deine "Chordpro-Datei" noch alles enthalten kann und was da alles und wie umgesetzt werden soll.

          Kommentar


          • #6
            Alternativ zu jspit's Lösung kannst du auch diese Funktion nutzen:

            PHP-Code:
            function getStringBetween($str$startTag$endTag) {
                
            $startPos strpos($str$startTag);
                if (
            $startPos) {
                    
            $endPos strpos($str$endTag$startPos);
                    if (
            $endPos) return substr($str$startPos strlen($startTag), $endPos);
                    return 
            false;
                }
                return 
            false;
            }

            $string 'Dies ist ein Dummy Text. {t:Stand By Me}\n{st:Ben E King} Noch ein Dummy Text am Ende.';
            $title getStringBetween($string'{t:''}');
            if (
            $title) echo '<h1>'.$title.'</h1>';

            $interpret getStringBetween($string'{st:''}');
            if (
            $interpret) echo '<h1>'.$interpret.'</h1>'

            Kommentar

            Lädt...
            X