![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 1 Dołączył: 2.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Wita
Na niektórych strona internetowych zauważyłem, że wewnątrz dłuższych opisów, niektóre słowa zawierają linki np. do tagów. Sądzę, że są one tworzone automatycznie. Czy działa on na takiej zasadzie, że tekst rozbijany jest na każde słowo, a następnie jest ono sprawdzane, czy występuje w tablicy słów kluczowych? Jakie funkcje należałoby użyć do napisania takiego modułu? Na oko wydaje mi się, że taki moduł może być zasobożerny. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 121 Pomógł: 22 Dołączył: 22.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Coś w podobie mam zamiar robic w niedalekiej przyszlości.
Opcje jakie widzę: 1/ Tak jak piszesz rozbicie takiego tekstu na pojedyncze słowa i porównywanie, ale to jak sam zaówarzyłeś jest zasobożerne. 2/ Wykorzystanie fajnej funkcji strpos() która wyszukuje w stringach dany ciag znaków i zwraca na której pozycji zaczyna się dany ciąg np:
Wyświetli 20 ponieważ "j" ( pierwsza litera jagody ) znajduje się na 20 pozycji w tablicy $a ( string to tablica znaków ) i jeszcze dalej się bawiąc z liczeniem długości szukanego slowa mozna kombinować dodawanie linka napisane na biegu:
3/Można wykorzystać też str_replace(), funkcja ta znajduje dany ciąg w stringu i zamienia na inny:
Jeszcze można sie bawić się z wywołaniem tego przy tworzeniu takiego stringa ( w tym samym skrypcie ) czy np. wysłaniem go równolegle by ajax sie nim zają. Zresztą sposoby wywołania sa dowolne. -------------------- Sorka za błędy ort. jak coś dajcie znać na PW to popoprawiam.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 1 Dołączył: 2.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Cóż, akurat o czymś takim już myślałem, ale mimo wszystko dzięki za odpowiedź. Jestem ciekaw, czy istnieje nieco bardziej optymalny sposób.
Ten post edytował adam882 22.06.2012, 20:36:16 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 121 Pomógł: 22 Dołączył: 22.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się że optymalnie (dla servera) byłoby gdyby zrobić to w js, skoro java wykonuje się po stronie przeglądarki, to nie obciążalibyśmy tym servera. Jednak takie rozwiązanie jest dobre do tekstów które się często zmieniają. Ja w swoim skrypcie na pewno będę korzystał z str_replace() do tworzenia linków, a strpos() przy usuwaniu ich.
Wydaje mi się że jednak lepiej to puszczać od siebie, a by nie zajmowało to czasu planuje zrobić to przy pomocy ajaxa, czyli tu sobie dodam do bazy jakiś tekst do którego będą linki i razem z zapisem wyśle ajaxa by przeszukiwał resztę bazy i linkował. -------------------- Sorka za błędy ort. jak coś dajcie znać na PW to popoprawiam.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 06:03 |