![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 4 Dołączył: 22.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Od pewnego czasu zastanawiam się jak zrobić skrypt, który wstawiony jako iframe (lub za pomocą js) na inną stronę, pobierałby z niej tekst i sprawdzał, na podstawie swojej bazy danych, czy występują na niej słowa kluczowe. Problemem jest to że w bazie słowa kluczowe zapisywane są po kilka w każdym rekordzie oddzielone spacjami (rozdzielenie ich do tablicy z ID rekordu wymaga więcej czasu i pamięci). Próbowałem robić to łącząc się za pomocą CURL ze stroną ($_SERVER['HTTP_REFERER']), następnie usuwając znaczniki html i wszystkie znaki interpunkcyjne i specjalne. Dalej dzielę wynik do tablicy przez spacje i teraz problem: dla każdego wpisu w tablicy muszę wykonać zapytanie do bazy, żeby sprawdzić czy nie jest on słowem kluczowym. Zajmuje to zdecydowanie za dużo czasu i obciąża serwer, szczególnie że nie jest to jedyne zadanie skryptu (dalej analizuje słowa kluczowa, zapisuje w bazie ich występowanie, itp.). Może ma ktoś jakieś propozycje jak przyśpieszyć działanie skryptu i odciążyć serwer? Daje kod jakim tworzę tą tablicę ze słowami, dalej w pętli porownuje z wpisami w bazie.
A może znacie inny sposób na sprawdzenie czy na stronie występują słowa z bazy? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 4 Dołączył: 22.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki Cotter za wykład (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Napewno z niego skorzystam, jednak myślę jeszcze nad cache'owaniem wyników z wyszukiwania słów na stronach. Wtedy zapisywałoby ID rekordu, w którym znajduje się dane słowo (jedno słowo - jeden rekord), do plików .txt Pliki byłyby zapisywane zgodnie ze schematem cache/(domena)/(nazwa katalogu lub pliku).txt Dane w cache byłyby sprawdzane raz lub dwa razy na tydzień (cron), a nowe dodawane gdy szuka słów kluczowych na nieznanej stronie. Powinno to trochę odciążyć bazę danych, szkoda tylko że dysk przy tym oberwie. Ogólnie skrypt szukający słów kluczowych byłby wywoływany ok. 50k razy (uq wyświetlenia) i przeszło 250k wyśw (dane ze statystyk) dziennie na różnych stronach, a ta wartość rośnie dosyć szybko. Bez tego baza danych mogłaby nie wyrobić. Myślisz, że takie rozwiązanie zmieni coś przy wybieraniu słów kluczowych? Dzięki temu powinno przeszukiwać każdą stronę raz lub dwa razy w tygodniu a nie kilkaset razy dziennie, tylko czy przy większej ilości adresów (w końcu każda podstrona ma swój plik z ID słów kluczowych) nie obciąży to zbytnio procesora? I jeszcze: podany przeze mnie sposób pobierania słów ze strony jest dobry? Czy można go przyśpieszyć (napewno można, tylko jak)? Przy cache'owaniu będzie wywoływany ok. 500-1k razy dziennie (w dniu cron'a skoczy do ok. 10k, zależnie od ilości podstron zapisanych w plikach) więc różnica nawet niecałej sekundy może dużo dać. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 06:56 |