load->view('rdf/html_tag_helpers');
$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 "\n";
print "
EasyRdf Converter\n";
print "\n";
print "
EasyRdf Converter
\n";
print "
\n";
print form_tag();
print label_tag('data', 'Input Data: ').'
'.text_area_tag('data', '', array('cols'=>30, 'rows'=>10)) . "
\n";
print label_tag('uri', 'or Uri: ').text_field_tag('uri', 'http://www.dajobe.org/foaf.rdf', array('size'=>80)) . "
\n";
print label_tag('input_format', 'Input Format: ').select_tag('input_format', $input_format_options) . "
\n";
print label_tag('output_format', 'Output Format: ').select_tag('output_format', $output_format_options) . "
\n";
print label_tag('raw', 'Raw Output: ').check_box_tag('raw') . "
\n";
print reset_tag() . submit_tag();
print form_end_tag();
print "
\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 '
'.htmlspecialchars($output).'
';
}
}
if (!isset($_REQUEST['raw'])) {
print "\n";
print "\n";
}
?>