Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] preg_replace -> str_replace
Forum PHP.pl > Forum > Przedszkole
Buruniu
Witam.

Mam sobie taki oto kod:
  1. <td class=\"grey\">".($search ? $main->highlight(str_replace("\r\n", "<br />",$rev['comment']), $searchstr) : str_replace("\r\n", "<br />",$rev['comment']))."</td>

Jak widać, używam str_replace do zamiany enterów na <br />, lecz to mi nie wystarcza, bo oprócz tego chciałbym jeszcze dodać zamianę linków na aktywne (klikalne, odnośniki) (bo normalne echo zwraca link w postaci plain tekstu [zwykłego tekstu]).

Chcąc zrobić, to co opisałem wyżej, zamieniam fragment kodu
  1. str_replace("\r\n", "<br />",$rev['comment'])

na
  1. preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($code))

Dzięki czemu otrzymuję preg_replace, które nie dość, ze zamienia mi linki na aktywne to jeszcze entery na <br /> - teoretycznie.

Mój cały kod wygląda teraz tak:
  1. <td class=\"grey\">".($search ? $main->highlight(preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($code)), $searchstr) : preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($code)))."</td>


TEORETYCZNIE powinno działać tak jak chciałem, lecz nie działa.
Czy da się to preg_replace przepisać jakoś żeby to było str_replace (czyli tak jak miałem na samym początku) może wtedy mi zadziała...

Pomoże ktoś? smile.gif

Dzięki,
Pozdrawiam

#EDIT
Jestem debilem. Zapomniałem zamienić $code na $rev['comment']. Teraz już chyba powinno działać.
  1. <td class=\"grey\">".($search ? $main->highlight(preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($code)), $searchstr) : preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($rev['comment'])))."</td>
mat-bi
nl2br to pies?
Buruniu
Cytat(mat-bi @ 26.06.2011, 11:31:35 ) *
nl2br to pies?

Nie rozumiem. Co masz na myśli?
mat-bi
A przejrzałeś manual chociaż?

Buruniu
Mam jeszcze pytanie, czy jest jakiś lepszy sposób na zamianę linków na klikalne? Ponieważ poniższy sposób gubi się, gdy w adresie jest spacja lub gdy na końcu adresu bez spacji dodamy jakiś znak...

  1. preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($rev['comment']))

Znalazłem coś takiego:
http://www.totallyphp.co.uk/code/convert_l..._hyperlinks.htm
http://snipplr.com/view/12673/linkify--con...-text-to-links/

Ale jak to tutaj wkomponować?:
  1. <td class=\"grey\">".($search ? $main->highlight(preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($rev['comment'])), $searchstr) : preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($rev['comment'])))."</td>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.