string durchsuchen und ersetzen

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

  • string durchsuchen und ersetzen

    Hi jungs,

    ich hab ein größeres problem was aber warscheinlich einfach für euch sein wird. und zwar will ich einen string nach einem bestimmten inhalt absuchen der zwischen einem bestimmten teil steht:

    und zwar:

    ["URL=http://www.php-resource.de]PHP-Resource[/URL"]

    so sieht der string aus nur ohne die anführungszeichen die musste ich machen weil er es sonst decodiert hätte

    aus diesem teil möchte ich nun die adresse und den namen auslesen....

    ich glaub bei mir liegt es daran das ich nicht die richtigen funktionen dafür kenne. ich hab schon einige gefunden aber mit keiner konnte ich die sache die dazwischen stehen speichern.....


    thx im vorraus draufunddran

  • #2
    PHP-Code:
    $reg '/\\\[URL="([^\\\]]*)\\\]([^\\\[]*)\\\[/' 
    Probiers mal mittels einem preg_match
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      also ich hab es jetzt mal so aufgebaut aber irgendwie is die variable $text am ende leer.

      PHP-Code:
      while(eregi("\\[URL\\="$text) == TRUE) {
          
              
      preg_match("/\\[URL=([^\\]]*)\\]([^\\[]*)\\[/"$text$link);
              
      $html_link "<a title='".$link[2]."' href='".$link[1]."'>".$link[2]."</a>";
              
      $text preg_replace("/\\[URL=([^\\]]*)\\]([^\\[]*)\\[/"$html_link $text);    
          } 

      achja das suchmuster verteh ich auch nicht ganz ich hab etwas anderst gemacht...

      greetz drauf....
      Zuletzt geändert von draufunddran; 19.02.2007, 16:25.

      Kommentar


      • #4
        PHP-Code:
        while(eregi("\\[URL\\="$text) == TRUE) {
            
                
        preg_match("suchmuster für den namen und den link"$text$treffer);
                
        $html_link "<a title='".$treffer[2]."' href='".$treffer[1]."'>".$treffer[2]."</a>";
                
        $text preg_replace("suchmuster für den gesamten bereich"$html_link $text);    
            } 

        also im prinzip müsste es doch so gehen ich denke da müssten dann nur die suchmuster stimmen oder??
        damit hatte ich schon immer meine probs. bei preg_match soll er eben die teile nach [URL= bist ] suche und bei dem preg_replace soll er den ganzen teil von [URL=....... bist .... [/URL] ersetzen...


        damn ich hasse suchmuster

        Kommentar


        • #5
          Original geschrieben von draufunddran
          also im prinzip müsste es doch so gehen ich denke da müssten dann nur die suchmuster stimmen oder??
          alles viel zu umständlich, preg_replace reicht völlig aus.
          hier mal ein kurzes bsp. für [b]-tags:


          [edit]mist, das forum parsd ja schon - mache mal leerzeichen dazwischen
          $text='[ b ]fett[ / b] normal wieder [ b ]fett[ / b ] usw.';

          echo preg_replace('|\[b\](.+)\[/b\]|isU', '<b>\1</b>', $text);

          Kommentar


          • #6
            dann schau ich mla ob ich des auf mein bsp abwandeln kann

            $text = preg_replace('|\[URL\=(.+)\](.+)\[/URL\]|isU', '<a href='\1'>\2</a>', $text);


            ich werds mal testen....

            Kommentar


            • #7
              so endlich gehts ich hab jetzt aber ein neues problem und zwar formatiert er jetzt richtig aber er schreibt mir dann die daten nimmer in die daten bank.

              PHP-Code:
              <?php
              $ueberschrift
              =$HTTP_POST_VARS['ueberschrift'];
              $text=$HTTP_POST_VARS['text'];
              $autor=$HTTP_POST_VARS['autor'];

              // text bearbeiten

                  
              while(eregi("\[URL\="$text))
                  {    
                      
              $text preg_replace('|\[URL\=(.+)\](.+)\[/URL\]|isU''<a href=\'\1\'>\2</a>'$text);
                  }

              // datenbank eintrag generieren
                  
                  
              include_once "../../../php/inc/db_func.inc";
                  
              connectdb();
                  
              $a_akt_new=mysql_query("SELECT sequence FROM aktuelles ORDER BY sequence DESC LIMIT 1");
                  
              $akt_new=mysql_fetch_row($a_akt_new);
                  
              $seq_new=$akt_new[0]+1;

                  
              $insert=mysql_query("INSERT INTO aktuelles SET sequence='".$seq_new."', header='".$ueberschrift."', text='".nl2br($text)."', author='".$autor."', visible='1', date=now()");
                  
              closedb();
                  
                  print(
              "Eintrag wurde gemacht!<br>");
                  print(
              "<a href='../../index.php?aid=2'>Hier gehts zur&uuml;ck...</a>");
              ?>
              wenn er ein [URL= findet dann durchläuft er die schleife und ändert es in html um aber dann schreib er mir die daten nimmer in die datenbank...

              wenn er kein [URL= findet schreibt er mir alles in die datenbank was is jetzt wieder falsch??

              Kommentar


              • #8
                hab den fehler gefunden ich darf bei dem link in href='....' nicht dieses zeichen ' bennutzen sondern dieses " dann gehts.



                thx an alle die mir geholfen haben

                Kommentar


                • #9
                  @topicstarter
                  Hatte im RegExp noch einen kleinen Fehler drinn. Sorry, aber so funzt der RegExp, wie man hier sehen kann.
                  Code:
                  !\[\"URL=([^\]]*)\]([^\[]*)!is
                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar

                  Lädt...
                  X