Mercurial > hg > waet-hammond-1
annotate new/php/get_tests.php @ 15:853caf8cd74b
Update
author | Giulio Moro <giuliomoro@yahoo.it> |
---|---|
date | Wed, 04 May 2016 17:25:19 +0100 |
parents | |
children |
rev | line source |
---|---|
giuliomoro@15 | 1 <?php |
giuliomoro@15 | 2 /* |
giuliomoro@15 | 3 Get Tests |
giuliomoro@15 | 4 |
giuliomoro@15 | 5 This script returns the XML test names available, plus the number of tests |
giuliomoro@15 | 6 */ |
giuliomoro@15 | 7 |
giuliomoro@15 | 8 include "rel2abs.php"; |
giuliomoro@15 | 9 |
giuliomoro@15 | 10 // XML Saves location - assumes it will be saves/ |
giuliomoro@15 | 11 $data = array(); |
giuliomoro@15 | 12 $saves = glob("../saves/*.xml"); |
giuliomoro@15 | 13 if (is_array($saves)) |
giuliomoro@15 | 14 { |
giuliomoro@15 | 15 foreach($saves as $filename) { |
giuliomoro@15 | 16 $xml_string = file_get_contents($filename, FILE_TEXT); |
giuliomoro@15 | 17 $xml_object = simplexml_load_string($xml_string); |
giuliomoro@15 | 18 if ($xml_object) { |
giuliomoro@15 | 19 $filename = rel2abs($filename,"http://".$_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']); |
giuliomoro@15 | 20 $waet = $xml_object->waet[0]; |
giuliomoro@15 | 21 $testName = urldecode($waet["url"]); |
giuliomoro@15 | 22 if(array_key_exists($testName,$data)) { |
giuliomoro@15 | 23 // Key exists |
giuliomoro@15 | 24 array_push($data[$testName],$filename); |
giuliomoro@15 | 25 } else { |
giuliomoro@15 | 26 // Key does not exist |
giuliomoro@15 | 27 $data[$testName] = array($filename); |
giuliomoro@15 | 28 } |
giuliomoro@15 | 29 } |
giuliomoro@15 | 30 } |
giuliomoro@15 | 31 } |
giuliomoro@15 | 32 |
giuliomoro@15 | 33 // Now read the format response |
giuliomoro@15 | 34 $format = "JSON"; |
giuliomoro@15 | 35 if (array_key_exists("format",$_GET)) { |
giuliomoro@15 | 36 $format = $_GET["format"]; |
giuliomoro@15 | 37 } |
giuliomoro@15 | 38 switch($format) { |
giuliomoro@15 | 39 case "JSON": |
giuliomoro@15 | 40 // Return JSON |
giuliomoro@15 | 41 $doc_root = '{"tests": ['; |
giuliomoro@15 | 42 $keys = array_keys($data); |
giuliomoro@15 | 43 $numTests = count($data); |
giuliomoro@15 | 44 for ($testIndex = 0; $testIndex < $numTests; $testIndex++) { |
giuliomoro@15 | 45 $test_root = '{"testName": "'.$keys[$testIndex].'", "files": ['; |
giuliomoro@15 | 46 $numFiles = count($data[$keys[$testIndex]]); |
giuliomoro@15 | 47 for ($countIndex=0; $countIndex < $numFiles; $countIndex++) { |
giuliomoro@15 | 48 $test_root = $test_root.'"'.$data[$keys[$testIndex]][$countIndex].'"'; |
giuliomoro@15 | 49 if ($countIndex == $numFiles-1) { |
giuliomoro@15 | 50 $test_root = $test_root.']}'; |
giuliomoro@15 | 51 } else { |
giuliomoro@15 | 52 $test_root = $test_root.','; |
giuliomoro@15 | 53 } |
giuliomoro@15 | 54 } |
giuliomoro@15 | 55 $doc_root = $doc_root.$test_root; |
giuliomoro@15 | 56 if ($testIndex == $numTests-1) { |
giuliomoro@15 | 57 $doc_root = $doc_root.']}'; |
giuliomoro@15 | 58 } else { |
giuliomoro@15 | 59 $doc_root = $doc_root.','; |
giuliomoro@15 | 60 } |
giuliomoro@15 | 61 } |
giuliomoro@15 | 62 echo $doc_root; |
giuliomoro@15 | 63 break; |
giuliomoro@15 | 64 default: |
giuliomoro@15 | 65 echo '{"error": "format can only be JSON"}'; |
giuliomoro@15 | 66 } |
giuliomoro@15 | 67 |
giuliomoro@15 | 68 ?> |