One possible way is to use sleep()...the only question is, will it time-out/stop running after a long amount of time?
I'm not sure how server settings would effect sleep(), so that's not real dependable.
Actually however, I believe you can rig together some PHP daemons (this is just a theory of mine, so it would need testing).
Have any php script write the time/date into an otherwise empty text file.
In your daemon.php file, have your script open the file for reading and read the date.
If the date was older than what you specified (let's say you wanted it to do something every hour), it would execute a little loop, let's say all it would be is opening that time file with "w" and writing the new time/date.
Then, to be an actual daemon, have it sleep() for however long you need it to sleep. When it wakes up it examines the time, then sleeps for however long it needs to sleep to get up to 1 hour older than the time read, then it wakes up and checks again, and writes the date/time again.
The question is now, will the server allow a script to run for such a long time?
And also, how can you terminate the script like that? Wouldn't it just run infinately untill the server was reset?
If so, you should insert a little line into the daemon which reads the date, and if it says something like "TERMINATE", then it ends it's execution with exit.
So to terminate it, you'd simply open the text file yourself and change the time to "TERMINATE".
So, for you more experianced people, would that work?
I've been trying to make up an idea for a daemon and that's the closest I've come, if you don't have access to crontab.