Vorlagen Parsen

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

  • Vorlagen Parsen

    Hallo:

    Ich erstelle mir gerade ein Reisetagebuch wo ich Vorlagen wie bei Wikipedia z.B. für besuchte Museen, Orte usw. einbauen möchte.

    Ich bekomme aber folgenden Fehler:

    Warning: preg_replace() [function.preg-replace]: Unknown modifier '/' on line 43

    [CODE]
    Zuletzt geändert von maffy; 03.05.2009, 10:35.
    in der ruhe liegt die kraft

  • #2
    1. Lesen http://www.php-resource.de/forum/sho...threadid=50454 und Code umbrechen

    2. Du muss den Delimiter so wählen, dass er selbst nicht im Ausdruck vor kommt.

    Kommentar


    • #3
      2.1 ... oder alle Vorkommen des Delimiters in Ausdruck escapen.

      Kommentar


      • #4
        Re: Vorlagen Parsen

        Original geschrieben von maffy
        Warning: preg_replace() [function.preg-replace]: Unknown modifier '/' on line 43

        Code:
        //...
        	$muster = "/[Infobox Museum:($ifb_museum)]/i"; 
        	$str = preg_replace($muster, $museumoutput, $str); 
        					
        }
        // ...
        Neben den Delimitern müssen auch bestimmte Zeichen, die eine Funktion in PCRE erfüllen, escaped werden. Die Funktion preg_quote() ist dein Freund:

        PHP-Code:
        // ...
        // Aus der Zitatansicht kopieren, sonst fehlen Backslashes.
        // Der komische Smiley-Code ist auch nicht von mir ...
            
        $muster '/\[Infobox Museum:('
                        
        preg_quote($ifb_museum'/') .
                        
        ')\]/i'
              
        // unter der Voraussetzung, 
              // dass die runden Klammern als Subpattern gewollt sind

            
        $str preg_replace($muster$museumoutput$str); 
        // ... 
        Außerdem würde ich auf doppelte Hochkommas als Begrenzer beim Zusammenbauen eines PCRE-Strings verzichten. Das stiftet nur Verwirrung, was wie zu escapen ist.
        Zuletzt geändert von fireweasel; 02.05.2009, 23:13.
        Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

        Kommentar


        • #5
          Hallo
          Danke, so funktionier es.

          PHP-Code:

          $str 
          ='
          <p>Heute am 1 Tag waren wir im Museum XYZ in Musterdorf:</p>

          [Infobox Museum: 
          | Name = MuseumXaZ
          | Bild = MuseumXaZ.jpg 
          | Bildbeschreibung = Museum XaZ 
          | Ort = Musterdorf 
          | Art = Kunst 
          | Breitengrad = 00.00000 
          | Längengrad = 00.00000
          | Region-ISO = DE 
          | Webseite = [url]http://www.test.de[/url]
          ]

          <p>Am zweiten Tag der Reise waren wir ( gähn ) schon wieder in einem 
          Museum:</p>

          [Infobox Museum: 
          | Name = Antonius Museum 
          | Bild = MuseumAntonius.jpg 
          | Bildbeschreibung = Hier schmeißt einer Butter in die Ecke 
          | Ort = Musterdorf 
          | Art = Butterscheiße 
          | Breitengrad = 00.00000 
          | Längengrad = 00.00000 
          | Region-ISO = DE 
          | Webseite = [url]http://www.test.de[/url]
          ]
          '
          ;

          preg_match_all("/\[Infobox Museum:(([^]]+))]/i"$str$ifb_mus_fund); 

          foreach(
          $ifb_mus_fund[2] as $ifb_museum) {
              
              
          // Infobox trennen
              
          $input explode("|"$ifb_museum);
              
              
          // Felder trennen    
              
          $museum_name explode("="$input[1]);
              
          $museum_bild explode("="$input[2]);
              
          $museum_bildtitel explode("="$input[3]);
              
          $museum_ort explode("="$input[4]);
              
          $museum_art explode("="$input[5]);    
              
          $museum_lat explode("="$input[6]);
              
          $museum_lng explode("="$input[7]);
              
          $museum_region explode("="$input[8]);
              
          $museum_www explode("="$input[9]);
              
              
          // Infobox ausgeben
              
          $museumoutput "<table border='1' cellpadding='2' cellspacing='2' width='45%' bgcolor='#A050A0'>";
              
          $museumoutput .= "<tr><td>Name:</td> <td>".$museum_name[1]."</td></tr>";
              
          $museumoutput .= "<tr><td>Bild:</td> <td>".$museum_bild[1]."</td></tr>";
              
          $museumoutput .= "<tr><td>Bildtitel:</td> <td>".$museum_bildtitel[1]."</td></tr>";
              
          $museumoutput .= "<tr><td>Ort:</td> <td>".$museum_ort[1]."</td></tr>";
              
          $museumoutput .= "<tr><td>Art:</td> <td>".$museum_art[1]."</td></tr>";
              
          $museumoutput .= "<tr><td>Breitengrad:</td> <td>".$museum_lat[1]."</td></tr>";
              
          $museumoutput .= "<tr><td>Längengrad:</td> <td>".$museum_lng[1]."</td></tr>";
              
          $museumoutput .= "<tr><td>Region:</td> <td>".$museum_region[1]."</td></tr>";
              
          $museumoutput .= "<tr><td>Internet:</td> <td>".$museum_www[1]."</td></tr>";
              
          $museumoutput .= "</table>";
              
              
          //$muster = '/[Infobox Museum:($ifb_museum)]/i'; 
              
              
          $muster '/\[Infobox Museum:('preg_quote($ifb_museum'/') .')]/i';     
              
          $str preg_replace($muster$museumoutput$str);     
          }
              
              
          //print_r($ifb_mus_fund);
              
          print $str
          Zuletzt geändert von maffy; 03.05.2009, 10:42.
          in der ruhe liegt die kraft

          Kommentar

          Lädt...
          X