Advertisement
ipsBruno

(PHP) Compilador Online

Jan 4th, 2013
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.61 KB | None | 0 0
  1.  
  2.  
  3. <?php
  4.    
  5.  
  6. if(!isset($_POST[ "texto" ] )) :                
  7.  
  8. ?>
  9.  
  10. <form method=post>
  11.     <textarea name="texto" style="width: 752px;height: 419px;" ></textarea>
  12.     <input type=submit name=submit value=Compilar></input>
  13.  
  14. </form>
  15.  
  16.        
  17.    
  18. <?php
  19.  
  20. exit;
  21.  
  22. endif;
  23.  
  24.  
  25. $obj = new compiladorOnline();
  26. $obj->coletarDados ($_POST["texto"]) ;
  27. $obj->fazerNomes("scripts") ;
  28. $obj->executarCompilacao();
  29. $obj->baixarCompilado();
  30.  
  31.  
  32.  
  33. class compiladorOnline
  34. {
  35.  
  36.     private $amxNome ;
  37.     private $pwnNome ;
  38.     private $pwnCode ;
  39.  
  40.     function coletarDados ($codigo) {
  41.        
  42.         if(!strlen($codigo)) {
  43.             die("Erro ao pegar codigo");
  44.         }  
  45.        
  46.         $this->pwnCode = $codigo;
  47.  
  48.     }
  49.  
  50.     function fazerNomes ($pasta) {
  51.  
  52.         $aleatoria = $pasta . "/". substr(str_shuffle("abcdefghijklmnopqrstuvwxyz"), 0, 10);
  53.  
  54.         $this->amxNome = $aleatoria . ".amx";
  55.         $this->pwnNome = $aleatoria . ".pwn";
  56.  
  57.         return true;       
  58.     }
  59.  
  60.  
  61.     function executarCompilacao() {
  62.  
  63.         file_put_contents( $this->pwnNome, $this->pwnCode);
  64.  
  65.         ob_start();
  66.         passthru("pawncc.exe  -c \"" . $this->pwnNome ."\"");
  67.         ob_end_clean();
  68.  
  69.         unlink( $this->pwnNome );
  70.  
  71.         return true;
  72.     }
  73.  
  74.  
  75.     function baixarCompilado() {
  76.  
  77.         $amxArquivo = $this->amxNome;
  78.  
  79.    
  80.  
  81.         if(!file_exists( $amxArquivo )) {
  82.             die("Hove um erro na compilação. Impossível baixar <b> </b>");
  83.         }
  84.        
  85.         $fp = fopen($amxArquivo, 'rb');
  86.  
  87.         header('Content-Disposition: attachment; filename='.$amxArquivo);
  88.         header("Content-Type: amx");
  89.         header("Content-Length: ".filesize($amxArquivo));
  90.  
  91.         fpassthru($fp);
  92.  
  93.         fclose($fp);
  94.  
  95.         unlink($amxArquivo);
  96.  
  97.         return true;
  98.     }
  99.  
  100. }
  101.  
  102.    
  103. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement