index       article       [code]       qcm       citation       glossary public.pub.graz.network
  droit       JS       meteo       nivologie       NTIC       orientation       SUBCATEGORY        


  create.webapp.php

Création d'une application en format script/PHP

<?
// nom de la webapp généré
$webapp='gallerie.webapp.php';
// insertion code d'execution
$output'<?exe();exit;?>';
// insertion du contenu du fichier README pour en-tete
$output.= get_file('README.txt');
// traitement de tous les fichiers du repertoire
$rep opendir('.');
while (
$file readdir($rep)){
    if (
$file !='..' && $file !='.' && $file !='' && (preg_match('/.(php|css|js|pl|html)/',$file))){
        
// récupération du contenu du fichier
        
$output.= get_file($file);
    }
}
closedir($rep);
// ajout code deploiement
$output.= get_execute_code($webapp);
// sauvegarde du fichier webapp
$fichier fopen($webapp"w");
fputs($fichier$output);
fclose($fichier);
highlight_file$webapp);
// function de récupérations d'un fichier
function get_file($file){
    if (!
is_dir($file)){
        
$out"<Webapp File="$file">n";
        
$out.= "<?n// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++n";
        
$out.= "// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++n";
        
$out.= "// ++  ---------------------------------------------------------- ++n";
        
$out.= "// ++  WebApp File:$filen";
        
$out.= "// ++  ---------------------------------------------------------- ++n";
        
$out.= "// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++n";
        
$out.= "// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++n?>n";
        
$out.= fread(fopen($file"r"), filesize($file));
        
$out.= "</Webapp File="$file">n";
    }
    return 
$out;
}
// function d'insertion du code de deploiement, ajouté en bas de la webapp
function get_execute_code($file){
    
$out "<?nfunction exe(){n";
    
$out.= "t$file='$file';n";
    
$out.= "t$webapp = fread(fopen($file, "r"), filesize($file));n";
    
$out.= "t$webapp2 = preg_replace('/(<?exe();exit;?>)/', '', $webapp);n";
    
$out.= "t$app = preg_split('/</WebappsFile="S+">/', $webapp2);n";
    
$out.= "tfor ($i=0; $i<count($app)-1;$i++){n";
    
$out.= "ttpreg_match('/<WebappsFile="(S+)">/', $app[$i]$matches);n";
    
$out.= "tt$code = preg_replace('/(</?WebappsFile="S+">)/', '', $app[$i]);n";
    
$out.= "tt$code2 = preg_replace('/^(.?n.?n.*n.*n.*n.*n.*n.*n.*n.*n.*n)/m', '', $code);n";
    
$out.= "tt$fichier = fopen($matches[1], "w");n";
    
$out.= "ttfputs($fichier$code2);n";
    
$out.= "ttfclose($fichier);n";
    
$out.= "t}ntheader("locationinstall.exe.php");";
    
$out.= "texit();n}n?>";
    return 
$out;
}
?>
1