Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne][PHP]Automatyczne czytanie strony
sadistic_son
post 23.04.2024, 13:06:25
Post #1





Grupa: Zarejestrowani
Postów: 1 487
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cześć.
Potrzebuję sprawdzać czy na danej stronie (na obcym serwerze) coś się zmieniło. A więc zapisuję sobie treść danej strony w pliku (jeśli ten plik nie istnieje) a następnie porównuję to co w pliku (zapisanew wcześniej) do tego jak strona wygląda obecnie. Jeśli są różnice wysyłam mejla. To realizuję tym kodem (fragment):
  1. $url = 'https://strona.ktora.ogladam.pl/podstrona/';
  2. // pliczek z zawartoscia strony
  3. $filename = 'page_content.txt';
  4.  
  5. // wyciaganie zawartosci strony
  6. function fetchPageContent($url) {
  7. $ch = curl_init($url);
  8. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  9. $content = curl_exec($ch);
  10. curl_close($ch);
  11. return $content;
  12. }
  13.  
  14. // porownanie poprzedniej wersji strony z obecna
  15. function compareContent($currentContent, $filename) {
  16. // jesli pliku nie ma - stworz go
  17. if (!file_exists($filename)) {
  18. file_put_contents($filename, $currentContent);
  19. return "Nie było treści. Utworzono.";
  20. } else {
  21. // porownaj
  22. $previousContent = file_get_contents($filename);
  23. if ($currentContent === $previousContent) {
  24. return "Brak zmian.";
  25. } else {
  26. // zaktualizuj zawartosc pliku ze strona
  27. file_put_contents($filename, $currentContent);
  28. // wysylanie mejla jesli wykryto zmiany
  29. $from = "ja@ja.pl";
  30. $to = "ty@ty.pl";
  31. $subject = "Wykryto zmiany!";
  32. $message = "Na stronie wykryto zmiany w stounku do poprzedniego stanu.";
  33. $headers = "From: $from";
  34. mail($to, $subject, $message, $headers);
  35. return "WYKRYTO ZMIANY!";
  36. }
  37. }
  38. }
  39.  
  40.  
  41. $currentContent = fetchPageContent($url);
  42.  
  43. $result = compareContent($currentContent, $filename);
  44.  
  45. echo $result;

I to działa jak należy. ALE ALE... ja chcę żeby to robiło się samo co 30 minut, tak więc... CRON. I w CRONie mam ustawione tak:
Kod
*/30 * * * *

/usr/local/bin/php80 /home/mojUser/domains/moja.domena.pl/public_html/ch_change/index.php >/dev/null 2>&1

Niestety skrypt ten nie wywołuje się sam. No to sprawdzamy czy CRONa poprawnie ustawiłem.

W tym samym katalogu zrobiłem plik test.php:
  1. $from = "test@test.pl";
  2. $to = "sadistic@son.pl";
  3. $subject = "TEST";
  4. $message = "to jest tylko test mejla co minutę";
  5. $headers = "From: $from";
  6. mail($to, $subject, $message, $headers);
Oraz ustawiłem drugie zadanie CRONa, co 2 minuty wywołanie skryptu test.php:
Kod
*/2 * * * *
/usr/local/bin/php80 /home/mojUser/domains/moja.domena.pl/public_html/ch_change/test.php >/dev/null 2>&1

Działa jak złoto. Dodam, że jeśli ręcznie odpalę skrypt index.php który mnie interesuje to też działa, wygląda na to jakby nie wykonywał się kiedy CRON go odpala.


Kombinowałem też z odświeżaniem strony co 10 minut, ale Chrome jak jest zminimalizowany w tle to najwidoczniej przestaje odliczać te 10 minut bo się strona nie odświeża.


PS. User name, ścieżki, emaile pozmieniałem oczywiście wink.gif


Pomóżcie. Co robię nie tak:
1) Dlaczego CRON wykonuje jeden (prostszy) skrypt test.php a drugiego index.php w tym samym katalogu już nie?
2) Dlaczego odświeżanie strony co 10 minut nie działa w Chromie działającym w tle?
Dzięki.

Ten post edytował sadistic_son 23.04.2024, 13:07:47


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Tomplus
post 24.04.2024, 07:31:59
Post #2





Grupa: Zarejestrowani
Postów: 1 843
Pomógł: 226
Dołączył: 20.03.2005
Skąd: Będzin

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


https://stackoverflow.com/questions/818255/what-does-21-mean
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 18.05.2024 - 16:15