Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 12.06.2005 Ostrzeżenie: (0%)
|
Chce zamienić w dowolnym tekście na linki wszystkie wyrazy które znajdują sie w słowniku (pobierane z bazy), ważne jest aby tworzyło linki tylko z całych wyrazów inaczej problemu by nie było.
Mam w słowniku kilkaset wpisów i przykładowo znajduje sie tam wyraz dom, chce żeby zamieniało w zdaniu tylko całe wyrazy nie może zamienić część znaków na link np. w wyrazach domek, domowy, domofon, domino itd. Ma zamieniać również wyrazy bez względu na wielkość znaków. Skrypt działa tak pobieram słowa z bazy i lecę pętlą - tu problemu nie ma następnie tworze linka na podstawie tytułu i opis - tu tez ok. Problem natomiast jest przy zamianie funkcją str_ireplace() problemu by nie było gdyby każdy wyraz otaczały spacje ale tam znajdują sie przecinki kropki nawiasy kod html i inne znaki. Próbowałem to zrobić za pomocą preg_replace() oraz [^[:alnum:]] i wszystko jest ok gdy w wyrażeniu znajduje sie text statyczny, gorzej ze musi tam sie znaleźć również zmienna a wtedy wywala mi błędy. nie wiem jak sobie z tym poradzić, wiec na razie stosuje kilka wywołań str_ireplace() ale to chyba dobry pomysł nie jest ze względu na wydajność a i tak parę kombinacji znaków sobie darowałem Oto mój kod:
Chciałbym wiedzieć jak to zadanie zrealizować za pomocą wyrażeń regularnych lub chociaż jak zoptymalizować ten mój skrypt by po dodaniu jeszcze kilku znaków działało wydajnie. Niestety szukałem rozwiązania na tym i na wielu innych forach i nie znalazłem Z góry dzięki za pomoc |
|
|
|
damians1 [php] zamiana całych wyrazów pobranych z bazy - problem 18.10.2007, 18:48:29
starr $slowo1 ='/('.$slowo.'){1}/... 18.10.2007, 21:47:36
damians1 Cytat(starr @ 18.10.2007, 20:47:36 ) ... 18.10.2007, 22:04:04 ![]() ![]() |
|
Aktualny czas: 20.12.2025 - 12:44 |