Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
easyrdf/examples/converter.php
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
96 lines (85 sloc)
3.55 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Convert RDF from one format to another | |
* | |
* The source RDF data can either be fetched from the web | |
* or typed into the Input box. | |
* | |
* The first thing that this script does is make a list the names of the | |
* supported input and output formats. These options are then | |
* displayed on the HTML form. | |
* | |
* The input data is loaded or parsed into an EasyRdf\Graph. | |
* That graph is than outputted again in the desired output format. | |
* | |
* @package EasyRdf | |
* @copyright Copyright (c) 2009-2020 Nicholas J Humfrey | |
* @license http://unlicense.org/ | |
*/ | |
require_once realpath(__DIR__.'/..')."/vendor/autoload.php"; | |
require_once __DIR__."/html_tag_helpers.php"; | |
$input_format_options = array('Guess' => 'guess'); | |
$output_format_options = array(); | |
foreach (\EasyRdf\Format::getFormats() as $format) { | |
if ($format->getSerialiserClass()) { | |
$output_format_options[$format->getLabel()] = $format->getName(); | |
} | |
if ($format->getParserClass()) { | |
$input_format_options[$format->getLabel()] = $format->getName(); | |
} | |
} | |
// Stupid PHP :( | |
if (get_magic_quotes_gpc() and isset($_REQUEST['data'])) { | |
$_REQUEST['data'] = stripslashes($_REQUEST['data']); | |
} | |
// Default to Guess input and Turtle output | |
if (!isset($_REQUEST['output_format'])) { | |
$_REQUEST['output_format'] = 'turtle'; | |
} | |
if (!isset($_REQUEST['input_format'])) { | |
$_REQUEST['input_format'] = 'guess'; | |
} | |
// Display the form, if raw option isn't set | |
if (!isset($_REQUEST['raw'])) { | |
print "<html>\n"; | |
print "<head><title>EasyRdf Converter</title></head>\n"; | |
print "<body>\n"; | |
print "<h1>EasyRdf Converter</h1>\n"; | |
print "<div style='margin: 10px'>\n"; | |
print form_tag(); | |
print label_tag('data', 'Input Data: ').'<br />'.text_area_tag('data', '', array('cols'=>80, 'rows'=>10)) . "<br />\n"; | |
print label_tag('uri', 'or Uri: ').text_field_tag('uri', 'http://danbri.org/foaf.rdf#danbri', array('size'=>80)) . "<br />\n"; | |
print label_tag('input_format', 'Input Format: ').select_tag('input_format', $input_format_options) . "<br />\n"; | |
print label_tag('output_format', 'Output Format: ').select_tag('output_format', $output_format_options) . "<br />\n"; | |
print label_tag('raw', 'Raw Output: ').check_box_tag('raw') . "<br />\n"; | |
print reset_tag() . submit_tag(); | |
print form_end_tag(); | |
print "</div>\n"; | |
} | |
if (isset($_REQUEST['uri']) or isset($_REQUEST['data'])) { | |
// Parse the input | |
$graph = new \EasyRdf\Graph($_REQUEST['uri']); | |
if (empty($_REQUEST['data'])) { | |
$graph->load($_REQUEST['uri'], $_REQUEST['input_format']); | |
} else { | |
$graph->parse($_REQUEST['data'], $_REQUEST['input_format'], $_REQUEST['uri']); | |
} | |
// Lookup the output format | |
$format = \EasyRdf\Format::getFormat($_REQUEST['output_format']); | |
// Serialise to the new output format | |
$output = $graph->serialise($format); | |
if (!is_scalar($output)) { | |
$output = var_export($output, true); | |
} | |
// Send the output back to the client | |
if (isset($_REQUEST['raw'])) { | |
header('Content-Type: '.$format->getDefaultMimeType()); | |
print $output; | |
} else { | |
print '<pre>'.htmlspecialchars($output).'</pre>'; | |
} | |
} | |
if (!isset($_REQUEST['raw'])) { | |
print "</body>\n"; | |
print "</html>\n"; | |
} |