breez breez - 5 months ago 7
PHP Question

Failsafe looping trough array of urls

How can I loop trought an array of external websites and not fail catastrophically if one of the websites doesn't respond? Consider the following psuedo code:

$urls = array(list of urls);
foreach ($urls as $url) {
try {
$page = get_page($url);
$title = $page['title'];
} catch(Exception $e) {
continue;
}
}


What i want to happen is to try and load page, if it doesn't respond then skip to the next url in the list. The problem is $title is set to blank. I tried grouping the code in a function but I still can't get the error exception to skip whole blocks of code.

Answer

Your code should work this way (except that "continue" is not needed). I guess the error is somewhere else.

Example:

$a = array(1, 2, 3, 4);
foreach($a as $b) {
 try {
    echo $b;  // this line works
    throw new Exception;
    echo 'NOT THERE'; // this line won't run
 } catch(Exception $e) {
 }
}
Comments