I know PHP is, by nature, not asychronous.....so here is my situation:
I currently have a CRON job that I want to run daily. It is a PHP script that cURLs multiple pages based on db entries. After adding a few lines to figure out each entry's time to complete, I figure it will take over 1.5 days for the script to finish each time it runs...and that will only get longer.

I am trying to figure out a way to speed this up significantly... I was looking at pcntl_fork(), but I am not sure how/if I can implement it for my script. I am also not sure if it would speed it up enough to matter.

I am looking for any ideas on how I can speed this up and complete the job in MUCH less time. My webhost does not seem support PCNTL, so forking does not appear to be an option. I do know my script does work, it is just a matter of speeding it up. I will even incorporate several methods if they are compatable. Forking the process for each ID looks like it would help some, but I am not positive.

So here is the basic concept behind my script. There is no information printed out on a webpage. Some code omited to simply the view...concept of script intact.

PHP Code:
$Email = new Email;
$Characters = new Characters;
$dbUtilities = new dbUtil;
$mycURL = new mycURL;

$db $dbUtilities->dbConnect();  //Connects to the Database
$CharacterIDList $Characters->Get_Character_List($db$Email);  //Gets a list of all the CharacterIDs in the Character_Info Table

foreach ($CharacterIDList as $CharacterID){
        
//cURL's character webpage and stores in $info variable
        
$info $mycURL->getWebPage('http://www.xxxxxxxxxxxxxx=Chr'.$CharacterID);

        
//Scrape and update Character_Info table
        
$Characters->Scrape_Character_Info($CharacterID$info$dbUtilities$db$Email);

        
//Scrape and Update Character Name if Changed
        
$Characters->Scrape_Character_Name($CharacterID$info$dbUtilities$db$Email);

        
//Scrape and Update Character friends
        
$Characters->Scrape_Character_Friends($CharacterID$info$dbUtilities$db$Email);

        
//Scrape and Update Character enemies
        
$Characters->Scrape_Character_Enemy_Players($CharacterID$info$dbUtilities$db$Email);
        
$Characters->Scrape_Character_Enemy_Kingdoms($CharacterID$info$dbUtilities$db$Email);

        
//Scrape and update Character City if changed
        
$Characters->Scrape_City($CharacterID$info$dbUtilities$db$Email);

As far as forking is concerned...I have been testing my script by loading it in a webpage and watching it go with a temporary echo after each foreach loop. I tried a simple script for forking just to see what happened. I got the fatal error. I do not know if this would change if it was executed as a CRON job or not. The test I ran was the following:
PHP Code:
if (! function_exists('pcntl_fork')) die('PCNTL functions not available on this PHP installation');
for (
$i 1$i <= 5; ++$i) {
    
$pid pcntl_fork();

    switch(
$pid) {
        case -
1:
            print 
"Could not fork!\n";
            exit;
        case 
0:
            
sleep(1);
            print 
"In child $i\n";
            exit;
        default:
            print 
"In parent!\n";
    }

phpinfo() revealed that I have PHP version 5.2.14 installed. Beyond that, I am a noob with CRON and have never messed with PCNTL.

Can anyone offer/help this poor soul?