Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/05/2005, 16:49
Avatar de Galled
Galled
 
Fecha de Ingreso: marzo-2005
Ubicación: Lima
Mensajes: 254
Antigüedad: 21 años, 5 meses
Puntos: 0
Ya lo solucione, era aki:

Código PHP:
<?
require "security.php";
 
$R_path = "//aguaje/siscpa/ArchivosPHP/R/rw2001/bin/Rterm.exe";
  
$R_options_1 ="--quiet --no-restore --no-save  < ";
    
$R_options_2 =" > ";
<?
function 
random_str($size) 
{ 
        
$randoms = array( 
                
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, 
                
c, d, e, f, g, h, i, j, k, l, m, n, 
                
o, p, q, r, s, t, u, v, w, x, y, z 
        
); 

        
srand ((double) microtime() * 1000000); 

        for(
$i = 1; $i <= $size; $i++) 
            
$text .= $randoms[(rand(0,35))]; 

        return 
$text; 
} 

function 
get_file_name($text)
{
  
$temp1 = explode("file=\"",$text);
  
$fname = explode("\"",$temp1[1]);

  return 
$fname[0];
}

if (!
$r_code || $r_code == "")
{
  echo 
"<font color=red>No se ha ingresado ningun codigo!</font><p>";
  echo 
"</TD></TR></TABLE></BODY></HTML>";
  exit;
}

$old_code = explode(chr(10),$r_code);
$total = count($old_code);
$new_code = "";

for (
$i=0;$i < $total; $i++)
{
  
$j = $i+1;
  
$old = $old_code[$i];

  
check_bad($old,$j);

  if (
ereg("$graphic",$old_code[$i]))
  {
     
$gfile_name = get_file_name($old_code[$i]);
     
$gfile_name = random_str(4).$gfile_name;
     
     
$new_code .= $graphic."(file=\"$temp_dir/$gfile_name\") \n";
  }
  else
     
$new_code .= $old_code[$i]."\n";
}

$r_name = random_str(10);
$r_input = $temp_dir."/".$r_name.".R";
$r_output = $temp_dir."/".$r_name.".Rout";

$fp = fopen($r_input,"w");
fwrite($fp,$new_code);
fclose($fp);

$rsoft = $R_path;

$command = "$rsoft $R_options_1 $r_input $R_options_2 $r_output";
$exec_result = exec($command, $result ,$error);

$lines = file($r_output);
$total = count($lines);

if (
$error)
{
  echo 
"<font color=red>Error: Algo sucedio mal! Por favor revise la salida!</font>";
  echo 
"<HR>Salida del programa R : <P><HR>";

  for (
$i=0;$i < $total;$i++)
    echo 
$lines[$i]."<BR>";

  exit;
}

echo 
"Salida del programa R¡G<P><HR>";

$to_do_plot = 0;

for (
$i=0;$i < $total;$i++)
{
  
$line = $lines[$i];
  if (
ereg("$graphic",$line))
  {
    echo 
$line."<BR>";

    
$gfile_name = get_file_name($line);
    
$to_do_plot = 1;

  }
  else if (
ereg("dev.off",$line))
  {
    echo 
$line."<BR>";

    if (
$to_do_plot == 1)
    { 
      echo 
"<P><IMG SRC=\"$gfile_name\"><P>";
      
$to_do_plot = 0;
    }
  }
  else if (
ereg("null device",$line))
    continue;
  else if (
ereg("          1",$line))
    continue;
  else
    echo 
$line."<BR>";
}

?>
</TD><TR></TABLE>
</BODY>
</HTML>
Aun no me sale lo que quiero, pero al menos ya no aparece el mensaje de error.

Esto sirve para conectar un programa estadistico llamado R con una pagina en php, y asi analizar lo que quieras en linea, sin necesidad de tener el programa. Mas informacion aqui:

http://steve-chen.net/R_PHP/doR.html

Lo siento, si he duplicado este tema, me parece que ya lo he puesto, pero dentro de otro tema