2009-07-30 17 views
0

Ich versuche, mein persönliches persönliches Messaging-System zu verbessern, indem ich es besser aussehen lasse und mich eher wie E-Mail fühle. Ich füge derzeit> vor jeder Zeile von geantwortetem Text hinzu, aber ich möchte auch Zeilen, die mit ">" ohne die Anführungszeichen beginnen, mit Formatierungen wie der Schriftfarbe versehen. Ich bin nicht sicher, wie ich die Linien mit einem regelmäßigen Ausdruck schließen würde. Um es zu öffnen, nehme ich an, dass ich etwas wie das folgende tun sollte?Regulärer Ausdruck zum Formatieren bestimmter Textzeilen

$new_text = preg_replace("\> \is", "<font color=\"grey\">> ", $text); 
+0

Können Sie uns weitere Informationen geben? In welcher Sprache verwenden Sie beispielsweise Ihr PM-System? –

Antwort

0
preg_replace("/^(>.*)$/im", "<span style=\"color: red;\">\\1</span>", $reply); 
+0

Das funktioniert, aber hatte einen kleinen Fehler, der unten behoben wurde: preg_replace ("/^(>.*)$/ im", " \\ 1 ", $ antworten); –

+0

Korrigiert. Froh, dass es funktioniert hat. –

+0

+1 für das Verständnis, was der Benutzer wollte. –

0
ereg_replace('^>(.*)', '<span class="quoted">&gt;\\1</span>', $content); 
0
preg_replace('/(\n>[^\n]*)+/','<span class="reply">$1</span>', $message); 

Etwas, dass die zitierte Antwort mit etwas anbei erhalten Sie stylen können.

0

Zusätzlich zu den guten Antworten, die bereits gepostet wurden, möchten Sie möglicherweise den erfassten Text umgehen, bevor Sie ihn als HTML behandeln. Beim einfachen Ersetzen werden einige Zeichen im zitierten Text (speziell '<', '>' und '&') Ihr generiertes HTML ungültig machen. (Ich nehme an, es nicht schon entgangen ist, oder Sie müssten „>“ statt „>“ übereinstimmen.)

Um sicherzustellen, dass der Ersatz Erträge gültigen HTML, Sie so etwas wie dies tun können:

function quote_markup($matches) { 
    $quote = htmlspecialchars($matches[1]); 
    return "<span style=\"color: red;\">$quote</span>", 
} 

preg_replace_callback("/^(>.*)$/im", 'quote_markup', $reply);