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 }