Wywoływanie skryptu raz dziennie - bez CRONa

Witam serdecznie,

Kombinuję nad wywołaniem skryptu budującego mapę strony (bez użycia CRON’a):

 

$path_parts = pathinfo($_SERVER['SCRIPT_FILENAME']);
$path_parts['filename'];
if ($path_parts['filename'] != "sitemapgenerator") {
    $filename = 'sitemap.xml';
    if (file_exists($filename)) {
        $aktualnadata = date("Y-m-d");
        $datapliku = date("Y-m-d", filectime($filename));
        if ($aktualnadata <= $datapliku) {
            
        } else {
            file_get_contents($url . "sitemapgenerator.php");
        }
    } else {
        file_get_contents($url . "sitemapgenerator.php");
    }
}

tylko nie bardzo mi to działa (nie wywołuje skryptu) - wiecie może dlaczego?

 

ps. czy takie rozwiązanie ma sens?

Jak ma ci zadziałać, skoro uruchamiasz to raz, albo przejdzie przez wszystkie i-fy, albo też nie, ale efekt końcowy jest taki, że to się już nigdy samoczynnie nie uruchomi drugi raz?

Skoro nie chcesz użyć Crona, to myślę, że powinieneś mieć drugi skrypt, który będzie sobie cały czas działał (pętla while lub until) i wywoływał twój skrypt w danym dniu. Pytanie tylko, po co wynajdywać koło na nowo. Chyba że nie masz możliwości użycia Crona?

Kilka luźnych uwag - może Cię naprowadzą na dobre rozwiąznie:

 

  1. po co jest druga linia kodu?

Według mnie jest ona zupełnie zbędna.

 

  1. Wydaje mi się, że porównanie dat w wierszu ósmym jest niewłaściwe

Bo plik nie może mieć daty późniejszej (nowszej), niż bieżąca (może być ona co najwyżej sobie równa - w tym samym dniu stworzenia pliku). To taka drobna uwaga, nie mająca w sumie wpływu na warunek. Nie wiem, co chcesz wtedy robić (ale chyba nic, bo to oznacza, że masz aktualny plik XML z mapą strony)?

 

  1. W przeciwnym razie, tj. gdy data pliku jest mniejsza (starsza) niż bieżąca, pownienenś wygenerować nowy plik XML, prawda? Ale nie poprzez

tylko (tak mi się wydaje - nie wiem, co się dzieje w pliku sitemapgenerator.php) pownieneś załączyć ten skrypt poprzez include (i nclude_once ) lub require ( require_once ), który dzięki temu się wykona i wygeneruje mapę w XML. Obawiam się, że poprzez file_get_contents nie uzyskasz akcji wywołania skryptu PHP, a jedynie odczytanie jego zawartości (akcja bez sensu) - nie sprawdzałem.

 

  1. Analoginczne działanie powinieneś podejmować w wierszu z drugim file_get_contents (czyli w przypadku, jeśli pliku XML z mapą nie ma).