Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyszukiwanie danych fraz w rekordzie
Forum PHP.pl > Forum > PHP
mazyl
Witam!

Mam pewien problem, mianowicie posiadam w bazie dany rekord:
id = 1
tekst = "jakiś tam dłuższy tekst"

i teraz chciałbym aby np pobierając rekord z innej tabeli wyszukało czy w tym rekordzie występuje słowo "tam"

jeżeli jest to aby podmieniło to słowo dodając link, czyli cały rekord przy wyświetlaniu powinien wyglądać mniej więcej tak: "jakiś <a href='url'>tam</a> dłuższy tekst"

ważne jest to aby podmieniło tylko 1 raz wyraz "tam" i przy następnym jego wyświetleniu już nie był w formie linku.

czy wie może ktoś jak to rozwiązać ?
_Borys_
Po wyciągnięciu tekstu z bazy
  1. echo str_replace('tam', '<a href=\'url\'>tam</a>', $tekst);

w bazie powinien być dodatkowy wiersz, jeśli tekst został pobrany to w bazie zaznaczamy, że pobrany i potem przy ponownym pobieraniu sprawdzamy czy pobrany, jeśli tak to normalnie wyświetlamy. W MYSQL jest funkcja REPLACE ale w twoim przypadku to nieistotne bo chcesz aby tylko raz podmieniło.
mazyl
Próbowałem już w ten sposób, wyciągałem za pomocą pętli słowa do zmiany, nastepnie gdy dokonano zmiany zmieniałem wartość z 0 na 1 aby już więcej nie brać pod uwage danego słowa, tylko problem polega na tym że:
  1. str_replace('tam', '<a href=\'url\'>tam</a>', $tekst);

przy wykonaniu automatycznie zamienia wszystkie slowa odrazu.


---- EDIT ----

Udało mi się osiągnąć wymagany efekt przy pomocy preg_replace

wielkie dzięki _Borys_ za pomoc.
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.