Hi Rolf,
ereg("([1]+).\ ([^.\ ]+).\ ([^.\ ]+).\ ", $content, shortcontent);
^-- hier fehlt ein $
dann verschwindet auch diese ...hm... "interessante" Fehlermeldung:
<cite>Warning: Cannot pass expression as argument 3 by reference </cite>
Der Einfachheit halber habe ich erst mal einen neuen regulären Ausdruck gebastelt: (Irgendwie sind die Teile write only ;-)
preg_match("~^((.*?. ){1,3})~s",$content,$shortcontent);
echo $shortcontent[1],"<br>";
Die preg_xxx sind die 'moderneren' Funktionen, machen aber praktisch das gleiche. (Das ereg-Zeugs hab ich
mir deshalb nicht mehr angetan, ich hab keine Ahnung ob es da genauso ginge)
kurz aufgedröselt:
~^((.*?. ){1,3})~s
^----Punkt passt auch auf Newline
^ ^-----Anfang/Ende Zeichen des Patterns.
^------------------Ab Anfang
^----------^------Erster Ausdruck
^----^-----------Zweiter Ausdruck
^^---------------Beliebige lange Zeichenkette
^---------------aber nicht 'gierig' <---das ist der 'Trick'
^^-------------deswegen nur bis zur ersten Punkt Leerzeichen-Kombination
^^^--------und das ein bis drei mal
Zu deinem Ausdruck:
"([^.\ ]+).\ "
das passt auf eine Zeichenkette die weder Punkt noch Leerzeichen enthält und von einer Zeichenfolge Punkt-Leerzeichen abgeschlossen wird.
Also auf "knuberlwutsch. " nicht aber auf "knuberl wutsch. "
hoffe, das hilft
Carsten
^.\ ↩︎