Both sides previous revisionPrevious revisionNext revision | Previous revision |
buechereielektrik:unapi:unapi.php [2009-12-20 13:42] – Some minor style corrections strols | buechereielektrik:unapi:unapi.php [2011-01-20 17:12] (current) – content moved strols |
---|
<code> | This content was moved to [[https://github.com/rosenke/unapi4pica|gitgub]]. |
<?php | |
| |
// hatop@ub.uni-marburg.de 2008-12-08 2009-12-03 | |
// http://unapi.info/specs/ | |
| |
/* Copyright 2008 2009 Goetz Hatop | |
* Goetz Hatop's original Version can be found at | |
* <ftp://ftp.ub.uni-marburg.de/pub/research/unapi.tar.gz> | |
*/ | |
| |
/* Copyright 2009 Stephan Rosenke <rosenke@ulb.tu-darmstadt.de> */ | |
| |
/* This program is free software: you can redistribute it and/or modify | |
* it under the terms of the GNU General Public License as published by | |
* the Free Software Foundation, either version 3 of the License, or | |
* (at your option) any later version. | |
* | |
* This program is distributed in the hope that it will be useful, | |
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
* GNU General Public License for more details. | |
* | |
* You should have received a copy of the GNU General Public License | |
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |
*/ | |
| |
/* Version: 0.1 */ | |
| |
/* Changelog | |
* | |
* 20091216: Some minor style corrections. | |
* 20091215: Added JSON as format. | |
* 20091214: s/require/require_once/. | |
* Made last switch() more validator compliant. | |
* 20091211: Added HTTP-Response-Codes to some cases in the last switch. | |
* Corrected answer if format=''. | |
* Added BibTex as format. | |
* 20091210: Put class Picappn to PicaRecord.php. | |
* Inserted conditional for textual output of array. | |
* Ordered final switch() alphabetically. | |
* Added format "plain", renamed "picaplus" to "extpp". | |
Put header() in the case-loops in final switch(). | |
* 20091210: Started with Goetz Hatop's version of 2009-12-08 | |
*/ | |
| |
require_once('PicaRecord.php'); | |
| |
$noparam = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> | |
<formats> | |
<format name=\"bibtex\" type=\"text/plain\" /> | |
<format name=\"dc\" type=\"application/xml\" /> | |
<format name=\"extpp\" type=\"application/xml\" /> | |
<format name=\"rdf\" type=\"application/xml\" /> | |
<format name=\"text\" type=\"text/plain\" /> | |
<format name=\"xml\" type=\"application/xml\" /> | |
</formats> | |
"; | |
| |
$idparam = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> | |
<formats id=\"info:pica/004\"> | |
<format name=\"text\" type=\"text/plain\" /> | |
</formats> | |
"; | |
| |
if (!isset($_GET['id']) || $_GET['id']=='') { | |
header('Content-type: application/xml'); | |
echo "$noparam"; | |
return; | |
} | |
| |
$pica = new Picappn(); | |
$pica->setPpn( $_GET['id'] ); | |
| |
if ($_GET['format'] == "array") { | |
echo "<head></head>\n<body>\n <pre>\n"; | |
print_r($pica->getArray()); | |
echo " </pre>\n</body>\n"; | |
die(0); | |
} | |
| |
switch ($_GET['format']) { | |
case 'bibtex': | |
$res = $pica->getBibTex(); | |
final_result($res, 'text/plain'); | |
break; | |
case 'dc': | |
$res = $pica->getDublinCore(); | |
final_result($res, 'application/xml'); | |
break; | |
case 'extpp': | |
$res = $pica->getPicaPlus(); | |
final_result($res, 'application/xml'); | |
break; | |
case 'json': | |
$res = $pica->getJson(); | |
final_result($res, 'application/json'); | |
break; | |
case 'plain': | |
$res = $pica->getPlain(); | |
break; | |
case 'rdf': | |
$res = $pica->getDublinCoreRDF(); | |
final_result($res, 'application/xml'); | |
break; | |
case 'text': | |
$res = $pica->getText(); | |
final_result($res, 'text/plain'); | |
break; | |
case 'xml': | |
$res = $pica->getXmlData(); | |
final_result($res, 'application/xml'); | |
break; | |
case '': | |
header('HTTP/1.0 300 Multiple Choices'); | |
header('Content-type: application/xml'); | |
echo "$noparam"; | |
break; | |
default: | |
header('HTTP/1.0 406 Not Acceptable'); | |
break; | |
} | |
?> | |
</code> | |