public static function getPlanets() { $Config = ConfigManager::declareConfigValue(); //get overview page html $overview = GlobalFunc::httpGet($Config['OVERVIEW_URL'], $Config['COOKIE_FILE']); $ov_dom = GlobalFunc::loadHtml($overview); $planet_list_dom = $ov_dom->getElementById("planetList"); $pList = $planet_list_dom; if (!is_object($pList)) { echo "Error occur, Planet List not found, return empty planet list.\n"; return array(); } //list 下 每個div都是一個星球 //每個div下都有兩個span //<span class="planet-name ">jones4</span> //<span class="planet-koords ">[1:83:6]</span> $planets_dom = $pList->getElementsByTagName('div'); //echo "There ". $planets_dom->length . " Planet(s)."; //存放月亮的起始編號(最後一顆星球之後就是月亮) $moon_num = $planets_dom->length + 1; //create planets $planets = array(); for ($i = 0; $i < $planets_dom->length; $i++) { //get planet link $a_list = $planets_dom->item($i)->getElementsByTagName('a'); $a_dom = $a_list->item(0); //產生星球 $planet = Planet::createPlanetObj($a_dom, $planets_dom, $i); //將星球obj 加入list $planets[$i] = $planet; //確認是否有月球 $has_moon = false; $moon_href = ""; $moon_coord = array(); $a_count = $a_list->length; $moon_obj = array(); Planet::updateMoonInfo($a_list, $a_count, $planet, $has_moon, $moon_href, $moon_coord); if ($has_moon == true) { //有月亮則加到清單最後面 $moon_obj = new Planet("月亮", $moon_coord, null, $moon_href, $moon_num); //將月亮obj 加入list //idx為編號-1 $planets[$moon_num - 1] = $moon_obj; $moon_num++; //月亮編號+1 } } return $planets; }