Certainly it can be done with PHP, however you should NOT do this as a background task – the new process has to be dissocated from the process group where it is initiated.
Since people keep giving the same wrong answer to this FAQ, I’ve written a fuller answer here:
http://symcbean.blogspot.com/2010/02/php-and-long-running-processes.html
From the comments:
The short version is
shell_exec('echo /usr/bin/php -q longThing.php | at now');
but the reasons “why”, are a bit long for inclusion here.