Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Podobieństwo plików
uirapuru
post
Post #1





Grupa: Zarejestrowani
Postów: 182
Pomógł: 9
Dołączył: 30.04.2005

Ostrzeżenie: (0%)
-----


Mam katalog plików, siedzi to sobie w bazie, należy każdy plik do jednej lub wielu kategorii, jest również opisany jakimiś tam tagami (zachowanymi w tablicy tagów, w przypadku tagu, który jeszcze tam nie istnieje - jest on dodawany do tablicy), posiada swoją nazwę.

Zastanawiam się jak zrobić taki box "Podobne pliki" na stronie: przy pokazywaniu jednego z plików obok pojawiałaby się lista np. 10 podobnych plików.

Jako kryteria do określenia podobieństwa chciałbym obrać właśnie nazwę, tagi i kategorię, do której przynależy plik. Nie mam jednak za cholerę pomysłu jak to wszystko ogarnąć, a najlepiej, jeśli dałoby się to zrobić po stronie bazy danych.

Wyobrażam to sobie jako jakąś wielką funkcję, która porównuje pliki każdy z każdym i wylicza jakieś tam procentowe podobieństwo, a zwraca listę plików powyżej danego progu punktowego).

Albo może przy dodawaniu już pliku liczyć mu z danych jakiś tam hash czy coś ( jednak przy aktualizacji tablic może on sie okazywać nieaktualny (np. dodanie tagów itp)), a przy szukaniu podobnych plików porównywać już same hashe (np. string z soundex plus kilka id od tagów i kategorii).

Macie lepszy pomysł?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Savail
post
Post #2





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 25.07.2008

Ostrzeżenie: (10%)
X----


poczytaj o funkcji similar_text. Powinna byc pomocna ^^
  1. similar_text($string1, $string2, $procent);

dane do porównywania ustawiasz jako string1 i string2. $procent automatycznie liczy procent podobienstwa. Oczywiscie mozliwe ze bedziesz potrzebowal uzycia roznych petli zeby to wszystko zlozyc do kupy

Edycja:
Zapomnialem dodac ze jesli $string1 i $string2 beda np tablicami przechowujacymi wiele nazw to aby $procent wyswietlal procent obliczany dla nazwy kazdej z osobna to wystarczy zamiast $procent wpisac $procent[] w similar_text. Pozniej:
  1. $ile = count($procent);
  2. for($i=0; $i<$ile; $i++){
  3. echo $procent[$i]
  4. }


Ten post edytował Savail 6.04.2010, 15:54:20
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: 4.10.2025 - 03:11