danielebarchiesi@4: danielebarchiesi@4: * @homepage danielebarchiesi@4: * @package ARC2 danielebarchiesi@4: * @version 2010-11-16 danielebarchiesi@4: */ danielebarchiesi@4: danielebarchiesi@4: function ARC2_getPreferredFormat($default = 'plain') { danielebarchiesi@4: $formats = array( danielebarchiesi@4: 'html' => 'HTML', 'text/html' => 'HTML', 'xhtml+xml' => 'HTML', danielebarchiesi@4: 'rdfxml' => 'RDFXML', 'rdf+xml' => 'RDFXML', danielebarchiesi@4: 'ntriples' => 'NTriples', danielebarchiesi@4: 'rdf+n3' => 'Turtle', 'x-turtle' => 'Turtle', 'turtle' => 'Turtle', 'text/turtle' => 'Turtle', danielebarchiesi@4: 'rdfjson' => 'RDFJSON', 'json' => 'RDFJSON', danielebarchiesi@4: 'xml' => 'XML', danielebarchiesi@4: 'legacyjson' => 'LegacyJSON' danielebarchiesi@4: ); danielebarchiesi@4: $prefs = array(); danielebarchiesi@4: $o_vals = array(); danielebarchiesi@4: /* accept header */ danielebarchiesi@4: $vals = explode(',', $_SERVER['HTTP_ACCEPT']); danielebarchiesi@4: if ($vals) { danielebarchiesi@4: foreach ($vals as $val) { danielebarchiesi@4: if (preg_match('/(rdf\+n3|(x\-|text\/)turtle|rdf\+xml|text\/html|xhtml\+xml|xml|json)/', $val, $m)) { danielebarchiesi@4: $o_vals[$m[1]] = 1; danielebarchiesi@4: if (preg_match('/\;q\=([0-9\.]+)/', $val, $sub_m)) { danielebarchiesi@4: $o_vals[$m[1]] = 1 * $sub_m[1]; danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: /* arg */ danielebarchiesi@4: if (isset($_GET['format'])) $o_vals[$_GET['format']] = 1.1; danielebarchiesi@4: /* rank */ danielebarchiesi@4: arsort($o_vals); danielebarchiesi@4: foreach ($o_vals as $val => $prio) { danielebarchiesi@4: $prefs[] = $val; danielebarchiesi@4: } danielebarchiesi@4: /* default */ danielebarchiesi@4: $prefs[] = $default; danielebarchiesi@4: foreach ($prefs as $pref) { danielebarchiesi@4: if (isset($formats[$pref])) { danielebarchiesi@4: return $formats[$pref]; danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: }