1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| <html>
<head><title>Simulateur de Combats Spatiaux</title></head>
<body>
<FONT FACE="tahoma">
<CENTER>
<form name="formulaire" method="post" action="Complexe.php"
<CENTER><FONT COLOR="RED" SIZE=+2><B><U>Défenseur</COLOR="RED"></FONT COLOR="RED" SIZE=+2></B></U><br/><br/></CENTER>
<FONT SIZE=+1><B><U>Collez ici votre Rapport d'Espionnage</FONT SIZE=+1></B></U><br/><br/>
<textarea name="formulaire" id="CadreFormulaire" rows="10" cols="40">
</textarea><br/><br/>
<input type="submit" name="valider" value="Envoyer"/>
</form>
</CENTER>
<FONT FACE="tahoma">
<?php
if(isset($_POST['valider'])){
function recupVariables( $chaine , $data ){
//création du masque de sélection des lignes à traiter
if( is_array( $data ) ) $mask = '`^(' . implode( '|' , $data ) . ')`i';
else $mask = '`^(' . $data . ')`i';
// on transforme la chaine d'entrée en tableau
$tabOriginal = explode( "\n" , $chaine );
// sélection des lignes intéressantes du tableau
$tab = preg_grep( $mask , $tabOriginal );
$out = array();
foreach( $tab as $ligne ){
list( $var , $val ) = explode( ':' , $ligne );
if( !is_array( $data ) ) return trim( $val );
$out[ trim( $var ) ] = trim( $val );
}
return $out;
}
$tabRecherches = array( 'Tour de Combat' , 'Canon Laser' , 'Grand Canon Laser' , 'Rayon Tracteur' , 'Lanceur de Missiles' , 'Satellite à Ions' , 'Batterie Electromagnétique' , 'Canon à Plasma' , 'Canon Electromagnétique' , 'Silos à Missiles HEM' , 'Complexe de Défense Orbital' , 'Missile d\'Interception Intelligent' , 'Technologie Amélioration de la Coque' , 'Technologie Amélioration de l\'Armement' , 'Technologie Bouclier de Protection' );
$Défenses = recupVariables( $_POST['formulaire'] , $tabRecherches );
echo $Défenses['Tour de Combat'] . '<br /><br />';
function recupVaisseau( $chaine ){
//comme dans la fonction recupVariables, on transforme la chaine d'entrée en tableau
$tabOriginal = explode( "\n" , $chaine );
//on sélectionne toutes les lignes contenant des parenthèses (à priori VAISSEAU( NOMBRE ) si j'ai bien capté)
$listeVaisseaux = preg_grep( '`\(`' , $tabOriginal );
$out = array();
foreach( $listeVaisseaux as $key=>$val ){
//création d'un nouvel objet de données qui représentera le vaisseau
$vaisseau = new stdClass();
// regex permettant de d'identifier le nom du vaisseau et le nombre
preg_match( '`^(?P<nom>.+?)\s*\(\s*(?P<nombre>\d+?)\s*\)$`' , $val , $t );
$vaisseau->nom = trim( $t['nom'] );
$vaisseau->nombre = trim( $t['nombre'] );
$vaisseau->caracteristiques = array();
$k = 0;
while( $tabOriginal[ $key + (++$k) ] != '' ){
if( strpos( $tabOriginal[ $key + $k ] , ':' ) == true ){
list( $var , $val ) = explode( ':' , $tabOriginal[ $key + $k ] );
$vaisseau->caracteristiques[ trim( $var ) ] = trim( $val );
}
else $vaisseau->caracteristiques[ trim( $tabOriginal[ $key + $k ] ) ] = 1;
}
$out[] = $vaisseau;
}
return $out;
}
$tab = recupVaisseau( $_POST['formulaire'] );
foreach( $tab as $vaisseau ){
echo 'Nom : ' . $vaisseau->nom . '<br />';
echo 'Nombre : ' . $vaisseau->nombre . '<br />';
echo 'Attaque : ' . $vaisseau->caracteristiques['Attaque'] . '<br />';
echo 'Bouclier : ' . $vaisseau->caracteristiques['Bouclier'] . '<br/>';
echo 'Coque : ' . $vaisseau->caracteristiques['Coque'] . '<br/>';
}
}
?> |
Partager