htdocs: Allow XML output in online demo
This commit is contained in:
parent
9a7d09086e
commit
a5bd41dd1c
|
@ -40,7 +40,7 @@
|
|||
<div class="wrap">
|
||||
<h2>Online Demo</h2>
|
||||
<form action="/demo/report/" name="f" onsubmit="return checkCodeLength();" method="post" target="_blank">
|
||||
<p><label for="code">Enter code:</label><br />
|
||||
<p><label for="code">Enter code:</label> <i class="maxChars">(max 1024 characters)</i><br />
|
||||
<textarea id="code" name="code" rows="20" cols="80">
|
||||
void f()
|
||||
{
|
||||
|
@ -48,7 +48,8 @@ void f()
|
|||
*p = 0;
|
||||
}
|
||||
</textarea><br />
|
||||
<input type="submit" value="Check" /> (max 1024 characters)</p>
|
||||
<input type="submit" value="Check" />
|
||||
<label><input type="checkbox" name="xml" value="1" />XML output</label></p>
|
||||
</form>
|
||||
<h3>Examples</h3>
|
||||
<p>This code can be copy and pasted in the edit box above.</p>
|
||||
|
|
|
@ -1,3 +1,62 @@
|
|||
<?php
|
||||
$isCodePosted = isset($_POST['code']) && !empty($_POST['code']);
|
||||
$isXmlOutput = isset($_POST['xml']) && $_POST['xml'] == '1';
|
||||
|
||||
/**
|
||||
* ...
|
||||
* @param string $code Source code
|
||||
* @return string Output lines
|
||||
*/
|
||||
function get_democlient_output($code) {
|
||||
$postdata = http_build_query(
|
||||
array(
|
||||
'code' => $code
|
||||
)
|
||||
);
|
||||
|
||||
$opts = array('http' =>
|
||||
array(
|
||||
'method' => 'POST',
|
||||
'header' => 'Content-type: application/x-www-form-urlencoded',
|
||||
'content' => $postdata
|
||||
)
|
||||
);
|
||||
|
||||
$context = stream_context_create($opts);
|
||||
|
||||
return @file_get_contents('http://cppcheck.sourceforge.net/cgi-bin/democlient.cgi', false, $context);
|
||||
}
|
||||
|
||||
function cut_string($string, $length = 1024) {
|
||||
if (strlen($string) > $length) {
|
||||
return substr($string, 0, $length);
|
||||
}
|
||||
return $string;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
// XML output...
|
||||
//--------------------------------------------------------------------------------
|
||||
if ($isXmlOutput) { //if XML output...
|
||||
header('Content-Type: text/xml');
|
||||
|
||||
if (!$isCodePosted) { //if NO code posted...
|
||||
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<results></results>\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
$output = get_democlient_output(cut_string($_POST['code']));
|
||||
|
||||
if ($output === false) { //if NO demo client output...
|
||||
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<results></results>\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
echo $output;
|
||||
exit;
|
||||
}
|
||||
//--------------------------------------------------------------------------------
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
||||
<head>
|
||||
|
@ -39,33 +98,6 @@
|
|||
<div class="wrap">
|
||||
<h2>Online Demo Report</h2>
|
||||
<?php
|
||||
$isCodePosted = isset($_POST['code']) && !empty($_POST['code']);
|
||||
|
||||
/**
|
||||
* ...
|
||||
* @param string $code Source code
|
||||
* @return string Output lines
|
||||
*/
|
||||
function get_democlient_output($code) {
|
||||
$postdata = http_build_query(
|
||||
array(
|
||||
'code' => $code
|
||||
)
|
||||
);
|
||||
|
||||
$opts = array('http' =>
|
||||
array(
|
||||
'method' => 'POST',
|
||||
'header' => 'Content-type: application/x-www-form-urlencoded',
|
||||
'content' => $postdata
|
||||
)
|
||||
);
|
||||
|
||||
$context = stream_context_create($opts);
|
||||
|
||||
return @file_get_contents('http://cppcheck.sourceforge.net/cgi-bin/democlient.cgi', false, $context);
|
||||
}
|
||||
|
||||
/**
|
||||
* ...
|
||||
* @param string $output Output lines
|
||||
|
@ -90,13 +122,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
function cut_string($string, $length = 1024) {
|
||||
if (strlen($string) > $length) {
|
||||
return substr($string, 0, $length);
|
||||
}
|
||||
return $string;
|
||||
}
|
||||
|
||||
if ($isCodePosted) { //if code posted...
|
||||
include_once '../../site/geshi/geshi.php';
|
||||
|
||||
|
|
|
@ -182,6 +182,13 @@ pre.cmd {
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
/* Max characters */
|
||||
.maxChars {
|
||||
margin-left: 2em;
|
||||
color: #888;
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
/* Printing */
|
||||
@media print {
|
||||
#header { color: black; border-bottom: 1px solid black; }
|
||||
|
|
Loading…
Reference in New Issue