str_replace / id vergeben

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

  • str_replace / id vergeben

    Hi

    ich stehe vor einem kleinen Problem. Hoffe ihr habt Ideen dazu.

    PHP-Code:
        function ubb($msg)
        {
            
    $hash substr(md5(uniqid(rand(), true)),1,8);
            
    $msg str_replace("[test]","<span id='".$hash."'>",$msg);
            
    $msg str_replace("[/test]","</span> ";
                    
            return 
    $msg;
        } 
    das ist mein Code. Ich versuche die <span> per JS über die Id anzusprechen. das js funktioniert - auch wenn ichs hier nicht übernommen habe. Es funktioniert aber natürlich nur solange man in einem text nur ein [test] tag einbaut. Bei mehreren wird immer die gleiche Id vergeben ($hash). Was kann ich tun um die Id eindeutig zu vergeben auch bei mehreren [test]-tags?

    danke

    lg CrazyPip

  • #2
    Re: str_replace / id vergeben

    PHP-Code:
        function ubb($msg)
        {
    static 
    $id;
    if (!isset(
    $id)) $id 0;
            
    $hash substr(md5(uniqid(rand(), true)),1,8);
            
    $msg str_replace("[test]","<span id='".$hash.++$id."'>",$msg);
            
    $msg str_replace("[/test]","</span> ";
                    
            return 
    $msg;
        } 

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      hi

      das funktioniert so leider nicht. Die Funktion ubb wird nur einmal aufgerufen - diese Zählfunktion mit static funktioniert nur wenn man die Funktion öfters aufruft.

      Der Text ist beispielsweise:
      Lorem ipsum [test]dolor[/test] sit amet, consetetur sadipscing elitr, sed diam nonumy [test]eirmod[/test] tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea [test]rebum[/test]. Stet clita...

      Jeder [test]-tag soll eine eigene Id bekommen alá <span id='id1'>dolor</span> usw id2, id3 usw ...

      Kommentar


      • #4
        Du könntest mit preg_replace arbeiten und den modifier e verwenden, dann kannst Du auf jeden Treffer eine Funktion anwenden und deinen hash erzeugen.
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Original geschrieben von MelloPie
          Du könntest mit preg_replace arbeiten und den modifier e verwenden, dann kannst Du auf jeden Treffer eine Funktion anwenden und deinen hash erzeugen.
          Dann aber lieber gleich mit preg_replace_callback(). Ist auch wesentlich performanter.


          Grüße
          Nieder mit der Camel Case-Konvention

          Kommentar


          • #6
            erstmal danke!

            werds ausprobieren sobald ich wieder zeit hab.

            lg crazypip

            Kommentar

            Lädt...
            X