故障安全循环通过网址数组

How can I loop through an array of external websites and not fail catastrophically if one of the websites doesn't respond? Consider the following pseudo 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.

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) {
 }
}

Just a quick note of how I would tackle the problem since I am not sure what your "get_page" function is doing

<?php

$urls[] = "http://www.google.com";
$urls[] = "http://www.lkhfsklhqiouhqwre.com";

foreach ($urls as $url) {
    $handle = fopen($url, "r");

    if ($handle) {
        $contents = stream_get_contents($handle);
        // process the contents
    } else {
        echo "$url Failed to load
";
    }
    fclose($handle);
}
?>