Mercurial > hg > rr-repo
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sites/all/libraries/ARC2/arc/ARC2_getPreferredFormat.php Thu Sep 19 10:38:44 2013 +0100 @@ -0,0 +1,50 @@ +<?php +/** + * ARC2 result format detection + * + * @author Benjamin Nowack + * @license <http://arc.semsol.org/license> + * @homepage <http://arc.semsol.org/> + * @package ARC2 + * @version 2010-11-16 +*/ + +function ARC2_getPreferredFormat($default = 'plain') { + $formats = array( + 'html' => 'HTML', 'text/html' => 'HTML', 'xhtml+xml' => 'HTML', + 'rdfxml' => 'RDFXML', 'rdf+xml' => 'RDFXML', + 'ntriples' => 'NTriples', + 'rdf+n3' => 'Turtle', 'x-turtle' => 'Turtle', 'turtle' => 'Turtle', 'text/turtle' => 'Turtle', + 'rdfjson' => 'RDFJSON', 'json' => 'RDFJSON', + 'xml' => 'XML', + 'legacyjson' => 'LegacyJSON' + ); + $prefs = array(); + $o_vals = array(); + /* accept header */ + $vals = explode(',', $_SERVER['HTTP_ACCEPT']); + if ($vals) { + foreach ($vals as $val) { + if (preg_match('/(rdf\+n3|(x\-|text\/)turtle|rdf\+xml|text\/html|xhtml\+xml|xml|json)/', $val, $m)) { + $o_vals[$m[1]] = 1; + if (preg_match('/\;q\=([0-9\.]+)/', $val, $sub_m)) { + $o_vals[$m[1]] = 1 * $sub_m[1]; + } + } + } + } + /* arg */ + if (isset($_GET['format'])) $o_vals[$_GET['format']] = 1.1; + /* rank */ + arsort($o_vals); + foreach ($o_vals as $val => $prio) { + $prefs[] = $val; + } + /* default */ + $prefs[] = $default; + foreach ($prefs as $pref) { + if (isset($formats[$pref])) { + return $formats[$pref]; + } + } +}