Bonjour à tous,

Comme on mon habitude je viens vous soliciter avec un besoin tordu.

je souhaiterai lire un fichier php dans lequel il y a un tableau, le mettre dans une variable et utiliser cette variable comme si le tableau avait été fait dessus.

mon fichier que je veux inclure.

<?php
        $player_file= array(
        'name' => 'Flo-FFS2',
        'ip' => 'erPatH6OtFNJ1Xys8OcTRnc+c90gAjUXNJpIZ9hgluItWy0tSVYtWy3HNZAdayJmtl6w7vJkyr+kRYAwDOmK81IegrC/fwihqQ==',
        'port' => '49152',
        'online' => '1',
        'level' => '0',
        'statut' => '5',
        'time' => '1477122660',
        'serial' => '20060413092100003',
        );
        ?>

et ce que j'ai déja essayer de faire mais sans résultat

<?php
//écriture du fichier
$temp_data_player=New stdClass();
$temp_data_player->name=$username;
$temp_data_player->ip=encrypt($_SERVER["REMOTE_ADDR"], key);
$temp_data_player->port=strval($xml->verify->port);
$temp_data_player->online='1';
$temp_data_player->level='0';
$temp_data_player->statut='5';
$temp_data_player->time=time();
$temp_data_player->serial=strval($xml->serial);

$me= New Player($temp_data_player);
$me->w_file();

//lecture du fichier
$me_player=include('./bd_light/player/'.$username.'.php');

echo $me_player['time'];
//eval($me_player);
//$me_player= inclued_get_data('./bd_light/player/'.$username.'.php');

//var_dump($me_player);

    ?>

et ce que je souhaiterai faire

$me_player=include('./bd_light/player/'.$username.'.php');

echo $me_player['time'];

et que cela me retoune: 1477122660
l'écriture du fichier se fait bien , je le vois et il est conforme, pas de message d'erreur lors de l'include, donc je suppose que je ne dois pas utiliser la bonne méthode, mais mon echo est vide.

Pourriez vous me conseillez.

merci d'avance
Flo

5 réponses


intelligid
Réponse acceptée
<?php
return array(
        'name' => 'Flo-FFS2',
        'ip' => 'erPatH6OtFNJ1Xys8OcTRnc+c90gAjUXNJpIZ9hgluItWy0tSVYtWy3HNZAdayJmtl6w7vJkyr+kRYAwDOmK81IegrC/fwihqQ==',
        'port' => '49152',
        'online' => '1',
        'level' => '0',
        'statut' => '5',
        'time' => '1477122660',
        'serial' => '20060413092100003',
        );
 ?>
<?php
$player = require 'fichier.php';
 ?>

;)

flo3376
Auteur

je viens d'essayer ceci

$me_player=eval(file_get_contents('./bd_light/player/Flo-FFS2.php'));
var_dump($me_player);

avec un fichier différent

array(
        'name' => 'Flo-FFS2',
        'ip' => 'cAatmke53tjjCH+fSBJFh2ZYi+sv8j6riUkWWv1u36AtWy0tSVYtWy1ohwHYQIQ6VD+fbyFWZlvlTbe/0Jx4XqHAxuyPyN2pjw==',
        'port' => '49152',
        'online' => '1',
        'level' => '0',
        'statut' => '5',
        'time' => '1477128373',
        'serial' => '20060413092100003',
        );

mais cela est toujours muet.

Je te déconseilles d'utiliser la fonction eval pour des raisons de sécurité.
Les fonctions "ob_" feront le taff :

ob_start();
include('./bd_light/player/'.$username.'.php');
$me_player = ob_get_contents();
flo3376
Auteur

négatif ,j'ai essayé, mais cela n'est pas interprété

ob_start();
include('./bd_light/player/'.$username.'.php');
$me_player = ob_get_contents();
ob_end_clean();

var_dump($me_player['serial']); 

voici l'erreur

<span style='color: #ff0000'><br />
<b>Warning</b>:  Illegal string offset 'serial' in <b>/home/ffsimulateur2/www/mark_5/trk_light/trk_light_4/tks_verify.php</b> on line <b>24</b><br />
</span>string(1) "a"
flo3376
Auteur

je n'aurai pas penser au return, merci intelligid et balo