AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] PCRE's und Multiline

Ein Thema von CalganX · begonnen am 31. Mai 2004 · letzter Beitrag vom 31. Mai 2004
Antwort Antwort
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

[PHP] PCRE's und Multiline

  Alt 31. Mai 2004, 18:13
Hi,
ich versuche gerade mir selber für mein CMS BB-Codes zu basteln. Habe mir für Code und Quote folgendes:
Code:
      // matches [quote]Quotation[/quote]
      $match[]   = '#\[quote\](.*?)\[\/quote\]#im';
      $replace[]   = '<p class="QuoteTitle">[size="1"][b]Zitat:[/b][/size]</p><p class="QuoteText">\\1</p>';
Funktioniert soweit ganz gut, aber obwohl ich den Modifier m gesetzt habe funktioniert es bei mehrzeiligen Texten nicht mehr.

Gibt es dafür eine plausible Erklärung?

Ich habe in den Source von phpBB schon herum gegraben, allerdings ist das verwerflich, weil dort in jeder Zeile dazu neue Variablen und Funktionen drin stehen und da durchzusteigen ist nicht einfach.
Und außerdem habe ich dort keinen Sinn gefunden, weil nicht das getan wird, was ich will, sondern das ganze viel komplizierter, als nötig.

Chris
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#2

Re: [PHP] PCRE's und Multiline

  Alt 31. Mai 2004, 18:35
Zitat von Chakotay1308:
Funktioniert soweit ganz gut, aber obwohl ich den Modifier m gesetzt habe funktioniert es bei mehrzeiligen Texten nicht mehr.

Gibt es dafür eine plausible Erklärung?
Ja, der m-Modifier ist für was anderes gedacht.

Zitat von http://www.php.net/manual/en/pcre.pattern.modifiers.php:
When this modifier is set, the "start of line" and "end of line" constructs match immediately following or immediately before any newline in the subject string, respectively, as well as at the very start and end. This is equivalent to Perl's /m modifier. If there are no "\n" characters in a subject string, or no occurrences of ^ or $ in a pattern, setting this modifier has no effect.
Probiers mal mit
Code:
$match[] = '#\[quote\]((.|\n)*?)\[\/quote\]#i';
[EDIT]Mir fällt nur gerade auf: Willst du nicht ohnehin vorher noch alle \n durch
ersetzen? Dann ergibt sich das Problem nämlich gar nicht.[/EDIT]
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: [PHP] PCRE's und Multiline

  Alt 31. Mai 2004, 18:39
Hi d3g,
http://home.pages.at/himitsu/S01/1BD.gif Danke, das funktioniert wunderbar.

Chris

[edit] Ist eigentlich sogar... Ich guck nochmal, aber trotzdem danke. Auf jedenfall funktioniert es jetzt.[/edit]
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz