Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wstawianie linków wewnątrz tekstu
adam882
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Shido
post
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:
  1. $a = "ala ma kota, kot ma jagody";
  2. echo strpos($a, 'jagody');

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:
  1. <?
  2. $szuk = 'jagody';
  3. $a = "ala ma kota, kot ma jagody";
  4. echo(''.$a.'<br /><hr />');
  5. $b = strpos($a, $szuk);
  6. if($b)
  7. {
  8. $a1 = substr($a, 0, $b);
  9. $a2 = substr($a, $b+strlen($szuk), strlen($b));
  10. $a = $a1.'<a href="#">'.$szuk.'</a>'.$a2;
  11. }
  12. echo(''.$a.'<br /><hr />');
  13. ?>


3/Można wykorzystać też str_replace(), funkcja ta znajduje dany ciąg w stringu i zamienia na inny:
  1. <?
  2. $szuk = 'jagody';
  3. $a = "ala ma kota, kot ma jagody";
  4. echo(''.$a.'<br /><hr />');
  5. $a = str_replace($szuk, '<a href="#">'.$szuk.'</a>', $a);
  6. echo(''.$a.'<br /><hr />');
  7. ?>


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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 21:38