Od razu przejdę do rzeczy. Mam problem z wyrażeniami regularnymi, podam od razu kod i wytłumaczę o co chodzi:
$text = "lol lol @luknik lol #SuperMuzykaTechno lol tuxpaint.org/stamps/stamps/animals/...cartoon/tux.png lol www.wp.pl"; '#([^ \'\"\<]+?[^ \'\"\.\<]+\.(pl|com|eu|info|biz|tv|net|org|tk)\.*(pl|com|eu|info|biz|tv|net|org|tk)*(\/[^ \'\"\<]+)?)#', '<a href="http://\\1" target="_blank" rel="nofollow">\\1</a>',$text); //2 $text = preg_replace('#<a(.*?)(?:href="http?://)((.*?)(?:\.jpg|\.png|\.gif)).*<\/a>#', '<a href="http://\\2"><img src="http://\\2" width="300" /></a>', $text); //3
A więc tak w tym kodzie prawie wszystko jest ok, a problem tkwi w połączeniu wyrażeń odpowiedzialnych za tworzenie linków oraz pokazywanie obrazów (oznaczone jako '2' i '3'). Kiedy są osobno to wszystko ładnie działa... Jak w zmiennej $text jest albo link normalny albo zakończony na rozszerzenie graficzne to też wszystko działa. Niestety kiedy w $text są zmieszane linki do stron i do obrazów zaczyna się wszystko krzaczyć... Linki nadal działają ale z obrazami dzieją się cyrki... Pokazuje tak jakby pusty obraz i zaraz po nim ponownie link do strony.
Proszę o pomoc bo już trochę nad tym siedzę i nie bardzo wiem o co chodzi, a wyrażenia regularne to nie jest moja mocna strona.
EDIT: Jeszcze dodam, że ważną rolę gra gdzie pojawi się link do strony. Jeśli będzie przed linkiem do obrazu to występuje to co opisałem wcześniej, a jeśli po to wszystko zatrzymuje się na obrazie i dalej zmienna jest pusta, albo jej nie wyświetla