Difference between revisions of "R.php"

From Organic Design wiki
(Base on fortran.pgp to start)
m
Line 8: Line 8:
 
if (!ereg( "\\/$", $htdocs)) $htdocs .= '/';
 
if (!ereg( "\\/$", $htdocs)) $htdocs .= '/';
  
$src = $htdocs.'wiki/source.f77';
+
$src = $htdocs.'wiki/source.R';
$gcc = '/usr/bin/gcc -x f77';
+
$R = '/usr/local/bin/R';
 
$out = $htdocs.'wiki/a.out';
 
$out = $htdocs.'wiki/a.out';
$stdout = $htdocs.'wiki/a.stdout';
 
$stderr = $htdocs.'wiki/a.stderr';
 
  
 
// Write the source to tmp file source
 
// Write the source to tmp file source
Line 20: Line 18:
 
}
 
}
  
// Compile & excecute
+
// Excecute
$article = "Compiling using $gcc\n";
+
$article = "Exuting using $R\n";
 
$now = microtime();
 
$now = microtime();
shell_exec("$gcc $src 1>$stdout 2>$stderr");
+
shell_exec("$R < $src >$out");
$article .= "Compilation took " . (microtime() - $now) . " usec\n";
+
$article .= file_get_contents($out);
$article .= file_get_contents($stdout).file_get_contents($stderr);
 
$article .= "\n\nExecuting compiled result:\n";
 
 
$now = microtime();
 
$now = microtime();
$article .= shell_exec("$out 2>&1");
 
 
$article .= "Execution took " . (microtime() - $now) . " usec\n";
 
$article .= "Execution took " . (microtime() - $now) . " usec\n";
 
}
 
}
else xwMessage('Permission denied: Only admin can compile and execute Fortran articles', 'red');
+
else xwMessage('Permission denied: Only admin can compile and execute R articles', 'red');
 
?>
 
?>

Revision as of 09:55, 3 September 2006

<?

  1. Fortan compiler for XmlWiki Environment
  2. Licensed under LGPL: www.gnu.org/copyleft/lesser.html

if ($GLOBALS['xwIsAdmin']) { xwSetProperty($properties,'language','TEXT'); $server = $_SERVER['HTTP_HOST']; $htdocs = $_SERVER['DOCUMENT_ROOT']; if (!ereg( "\\/$", $htdocs)) $htdocs .= '/';

$src = $htdocs.'wiki/source.R'; $R = '/usr/local/bin/R'; $out = $htdocs.'wiki/a.out';

// Write the source to tmp file source if ($handle = fopen($src, 'w+')) { fwrite($handle, "$article\n"); fclose($handle); }

// Excecute $article = "Exuting using $R\n"; $now = microtime(); shell_exec("$R < $src >$out"); $article .= file_get_contents($out); $now = microtime(); $article .= "Execution took " . (microtime() - $now) . " usec\n"; } else xwMessage('Permission denied: Only admin can compile and execute R articles', 'red'); ?>