I know there are many posts about using CRON to run a php file. But, in the world of shared hosting, and ease of setup for a user, I don't want to have to mess with that.
I found another solution online that has to do with sockets. Just wanted to get everyones take on this, and tell me if this is a good or bad idea. Sounds like it works well.
Thoughts?
//Open socket connection to cron.php
$socketcon = fsockopen($_SERVER['HTTP_HOST'],80,$errorno,$errorstr,10);
if($socketcon) {
$socketdata = "GET /cron.php HTTP 1.1\r\nHost: ".$_SERVER['HTTP_HOST']."\r\nConnection: Close\r\n\r\n";
fwrite($socketcon,$socketdata);
//Normally you would get all the data back with fgets and wait until $socketcon reaches feof.
//In this case, we just do this:
fclose($socketcon);
} else {
//something went wrong. Put your error handler here.
}
cron.php:
//This script does all the work.
sleep(200);
//To prove that this works we will create an empty file here, after the sleep is done.
//Make sure that the webserver can write in the directory you're testing this file in.
$handle = fopen('test.txt','w');
fclose($handle);
Found the script from a blog post: http://syn.ac/tech/13/creating-php-cronjobs-without-cron-and-php-cli/
If I understand well, you would run the first script from a remote machine, making a hit on the second script that would be hosted on your cron-disabled host ? Then, thanks to a bug or weird feature of php/webserver interaction when you Close the connection immediately, the script would not timeout ?
The first part is rather common practice, there are even companies providing this very service (http://www.webcron.org/index.php?lang=english for example will automatically poke any script you want at about any time you ask it to, for a fee).
The second part is unknown to me. This seems like a bug in the php/webserver interaction to me, but I might be wrong. Anyway, I would double check whether it's a bug or not (wait, that's what your doing right now right ?) and if it proves to be legit behavior, then go for it. If it seems to be a bug, then don't rely on this as it could be fixed anytime.