Thema: Text zwischen Anführungszeichen finden u. formatieren

Liebe Leute, ich brauche mal auf die Schnelle Eure Hilfe:

Ich lese Texte aus einer Datenbank, z.B. so einen:
“Danach zu Hegel”, Parabolica Spaces, Berlin

Wie sag ich php:
immer, wenn du im Text etwas zwischen Anführungszeichen findest, formatiere dieses kursiv ?

Gruß + Dank

Volker

2

Re: Text zwischen Anführungszeichen finden u. formatieren

Hallo.

Sowas wäre "mit RegEx" und preg_replace() möglich :

        $StringX='“Danach zu Hegel”, Parabolica Spaces, Berlin';

        $StringX=preg_replace('/“/is','<span style="font-style:italic;;">“',$StringX);
        $StringX=preg_replace('/”/is','”</span>',$StringX);
        
        echo $StringX;

Sollte eigentlich auch mit nur einem preg_replace funzen - aber so auf die Schnelle ...

Gruß,
Axel

Re: Text zwischen Anführungszeichen finden u. formatieren

Hallo Axel,
tausend Dank - das funzt auf Anhieb!

Du bist der Held meines Bürotages!  wink

Gruß + Dank

Volker

Re: Text zwischen Anführungszeichen finden u. formatieren

Hm, da hab ich mich doch etwas zu schnell gefreut - es gibt da noch einen kleinen Haken:

Wenn der User nämlich im Eingabeformular nicht linkes und rechtes Anführungszeichen (“blabla”),
sondern jeweils das einfache ("blabla") benutzen sollte, dann funktionierts nicht mehr.

Gruß + Dank

Volker

5

Re: Text zwischen Anführungszeichen finden u. formatieren

Joo - is korrekt. Danach wird ja auch nicht gesucht ...
Aber so :

        $StringX='“Danach zu Hegel”, "Dann zu Kant", Parabolica Spaces, Berlin';
        
        $StringX=preg_replace('/("|“)(.+?)("|”)/is','<span style="font-style:italic;">$1$2$3</span>',$StringX);        
        
        echo $StringX;

Bei dieser Variante werden auch die jeweils verwendeten " übernommen und kursiv dargestellt.

Abermals Gruß ...

Re: Text zwischen Anführungszeichen finden u. formatieren

Prima, nun ist fast alles gut.
Nachdem ich mich auf
http://www.php-resource.de/tutorials/read/10/1/
schlaugelesen hab, versteh ich auch halbwegs was wo steht und bedeutet - nur  (.+?) erschließt sich mir noch nicht so ganz.
Magst du dazu noch ein Wort für Dumme verlieren?

Gruß + Dank

Volker

7

Re: Text zwischen Anführungszeichen finden u. formatieren

Aber sicher dat :

Gesucht wird nach einem "Konstrukt", dass ...

1. am Anfang entweder das "normale" ODER das schräggestellte "einleitende" Gänsefüsschen aufweist,

2. dann eine undefinierte Anzahl "irgendwelcher" Zeichen:

   . erkennt alle Zeichen (ausser dem Zeilenumbruch)
   + mindestens eins oder mehr davon
   ? minimaler ("nicht gieriger" / "non greedy") Quantifier 

3. bis entweder das "normale" ODER das schräggestellte "ausleitende" Gänsefüsschen folgt

Was es mit der "Gier" auf sich hat, könntest du hier mal schauen. Das Beispel bezieht sich zwar auf Perl, die Erläuterungen zur Thematik sind aber "allgemeingültig".

Hilft dir das ?