# # 375 # 410 # ... # 518 # # sets a 410 status if missing name or gender info if(!isset($_GET["name"]) || !isset($_GET["gender"])) { header("HTTP/1.1 400 Invalid Request"); die("Sorry, we don't have any data for " + $name + " " + $gender); } $name = $_GET["name"]; $gender = $_GET["gender"]; # searches the file for the name $lines = file("rank.txt", FILE_IGNORE_NEW_LINES); $found = false; foreach($lines as $line) { $tokens = explode(" ", $line); if($tokens[0] == $name && $tokens[1] == $gender) { $found = true; createXML($tokens, $name, $gender); } } # if we have gotten here the name/gender combo isn't in our file. if(!$found) { header("HTTP/1.1 410 Gone"); die("Sorry, we don't have any data for " + $name + " " + $gender); } # creates and prints XML about the passed in # name and gender from the array of tokens function createXML ($tokens, $name, $gender) { $dom = new DOMDocument(); $baby = $dom->createElement("baby"); $baby->setAttribute("name", $name); $baby->setAttribute("gender", $gender); $dom->appendChild($baby); $year = 1890; for($i = 2; $i < count($tokens); $i++) { $rank = $dom->createElement("rank"); $rank->setAttribute("year", $year); $year += 10; $text = $dom->createTextNode($tokens[$i]); $rank->appendChild($text); $baby->appendChild($rank); } header("Content-type: text/xml"); print($dom->saveXML()); } ?>