nicholas@2224: $value) { nicholas@2224: $key = explode("-",$key); nicholas@2224: if ($key[0] == "url") { nicholas@2224: $waet_url = $value; nicholas@2224: } else { nicholas@2283: $v_pair = array($key[1],$value); nicholas@2224: if(array_key_exists($key[0],$keys)) { nicholas@2224: // We have some data nicholas@2224: array_push($keys[$key[0]],$v_pair); nicholas@2224: } else { nicholas@2224: // Create new key data nicholas@2283: $keys[$key[0]] = array($v_pair); nicholas@2224: } nicholas@2224: } nicholas@2224: } nicholas@2224: nicholas@2283: $files = array(); nicholas@3120: $saveLocation = getSaveLocation(); nicholas@3120: $saves = glob($saveLocation."*.xml"); nicholas@2224: if (is_array($saves)) nicholas@2224: { nicholas@2224: foreach($saves as $filename) { nicholas@2224: $xml_string = file_get_contents($filename, FILE_TEXT); nicholas@2224: $xml_object = simplexml_load_string($xml_string); nicholas@2224: if ($xml_object) { nicholas@2224: // First we must check the URLs match nicholas@2224: $waet = $xml_object->waet[0]; nicholas@2224: if (urldecode($waet["url"])==$waet_url) { nicholas@2224: // It is part of the dataset, so now perform checks nicholas@2224: $continue = true; nicholas@2224: foreach($keys as $keyId => $keyArr) { nicholas@2224: $elem = $xml_object->xpath("//*[@ref='".$keyId."']"); nicholas@2224: $elem = $elem[0]; // Can only be one. nicholas@2224: switch ($elem["type"]) { nicholas@2224: case "number": nicholas@2224: // Number, we must check for min/max nicholas@2224: $value = (real)$elem->response; nicholas@2224: foreach ($keyArr as $keyCheck) { nicholas@2224: if ($keyCheck[0] == 'min' && $value < $keyCheck[1]) { nicholas@2224: $continue = false; nicholas@2224: break; nicholas@2224: } else if ($keyCheck[0] == 'max' && $value > $keyCheck[1]) { nicholas@2224: $continue = false; nicholas@2224: break; nicholas@2224: } nicholas@2224: } nicholas@2224: break; nicholas@2224: case "checkbox": nicholas@2224: // Will have an array of nicholas@2224: foreach ($elem->response as $response) { nicholas@2224: foreach ($keyArr as $keyCheck) { nicholas@2224: if ($response["name"] == $keyCheck[1]) { nicholas@2224: if($response["checked"] == "true" && $keyCheck[0] == "exclude") { nicholas@2224: $continue = false; nicholas@2224: break; nicholas@2224: } nicholas@2224: } nicholas@2224: } nicholas@2224: if($continue == false) { nicholas@2224: break; nicholas@2224: } nicholas@2224: } nicholas@2224: break; nicholas@2224: case "radio": nicholas@2224: foreach ($keyArr as $keyCheck) { nicholas@2224: if ($keyCheck[0] == "exclude" && $elem->response["name"] == $keyCheck[1]) { nicholas@2224: nicholas@2224: $continue = false; nicholas@2224: break; nicholas@2224: } nicholas@2224: } nicholas@2224: break; nicholas@2224: default: nicholas@2224: break; nicholas@2224: } nicholas@2224: if ($continue == false) { nicholas@2224: break; nicholas@2224: } nicholas@2224: } nicholas@2224: if ($continue) { nicholas@2224: array_push($files,rel2abs($filename,"http://".$_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'])); nicholas@2224: } nicholas@2224: } nicholas@2224: } nicholas@2224: } nicholas@2224: } nicholas@2224: if (count($files) == 0) { nicholas@2224: echo '{"urls": []}'; nicholas@2224: } else { nicholas@2224: echo '{"urls": ["'.implode('","',$files).'"]}'; nicholas@2224: } nicholas@2224: nicholas@2538: ?>