Mercurial > hg > rr-repo
annotate sites/all/libraries/ARC2/arc/ARC2_getPreferredFormat.php @ 4:ce11bbd8f642
added modules
author | danieleb <danielebarchiesi@me.com> |
---|---|
date | Thu, 19 Sep 2013 10:38:44 +0100 |
parents | |
children |
rev | line source |
---|---|
danielebarchiesi@4 | 1 <?php |
danielebarchiesi@4 | 2 /** |
danielebarchiesi@4 | 3 * ARC2 result format detection |
danielebarchiesi@4 | 4 * |
danielebarchiesi@4 | 5 * @author Benjamin Nowack |
danielebarchiesi@4 | 6 * @license <http://arc.semsol.org/license> |
danielebarchiesi@4 | 7 * @homepage <http://arc.semsol.org/> |
danielebarchiesi@4 | 8 * @package ARC2 |
danielebarchiesi@4 | 9 * @version 2010-11-16 |
danielebarchiesi@4 | 10 */ |
danielebarchiesi@4 | 11 |
danielebarchiesi@4 | 12 function ARC2_getPreferredFormat($default = 'plain') { |
danielebarchiesi@4 | 13 $formats = array( |
danielebarchiesi@4 | 14 'html' => 'HTML', 'text/html' => 'HTML', 'xhtml+xml' => 'HTML', |
danielebarchiesi@4 | 15 'rdfxml' => 'RDFXML', 'rdf+xml' => 'RDFXML', |
danielebarchiesi@4 | 16 'ntriples' => 'NTriples', |
danielebarchiesi@4 | 17 'rdf+n3' => 'Turtle', 'x-turtle' => 'Turtle', 'turtle' => 'Turtle', 'text/turtle' => 'Turtle', |
danielebarchiesi@4 | 18 'rdfjson' => 'RDFJSON', 'json' => 'RDFJSON', |
danielebarchiesi@4 | 19 'xml' => 'XML', |
danielebarchiesi@4 | 20 'legacyjson' => 'LegacyJSON' |
danielebarchiesi@4 | 21 ); |
danielebarchiesi@4 | 22 $prefs = array(); |
danielebarchiesi@4 | 23 $o_vals = array(); |
danielebarchiesi@4 | 24 /* accept header */ |
danielebarchiesi@4 | 25 $vals = explode(',', $_SERVER['HTTP_ACCEPT']); |
danielebarchiesi@4 | 26 if ($vals) { |
danielebarchiesi@4 | 27 foreach ($vals as $val) { |
danielebarchiesi@4 | 28 if (preg_match('/(rdf\+n3|(x\-|text\/)turtle|rdf\+xml|text\/html|xhtml\+xml|xml|json)/', $val, $m)) { |
danielebarchiesi@4 | 29 $o_vals[$m[1]] = 1; |
danielebarchiesi@4 | 30 if (preg_match('/\;q\=([0-9\.]+)/', $val, $sub_m)) { |
danielebarchiesi@4 | 31 $o_vals[$m[1]] = 1 * $sub_m[1]; |
danielebarchiesi@4 | 32 } |
danielebarchiesi@4 | 33 } |
danielebarchiesi@4 | 34 } |
danielebarchiesi@4 | 35 } |
danielebarchiesi@4 | 36 /* arg */ |
danielebarchiesi@4 | 37 if (isset($_GET['format'])) $o_vals[$_GET['format']] = 1.1; |
danielebarchiesi@4 | 38 /* rank */ |
danielebarchiesi@4 | 39 arsort($o_vals); |
danielebarchiesi@4 | 40 foreach ($o_vals as $val => $prio) { |
danielebarchiesi@4 | 41 $prefs[] = $val; |
danielebarchiesi@4 | 42 } |
danielebarchiesi@4 | 43 /* default */ |
danielebarchiesi@4 | 44 $prefs[] = $default; |
danielebarchiesi@4 | 45 foreach ($prefs as $pref) { |
danielebarchiesi@4 | 46 if (isset($formats[$pref])) { |
danielebarchiesi@4 | 47 return $formats[$pref]; |
danielebarchiesi@4 | 48 } |
danielebarchiesi@4 | 49 } |
danielebarchiesi@4 | 50 } |