2010-10-23 6 views
1

I ont exporté un tableau en utilisant var_export($var,true); et stocké dans un fichier arraystore.phpUtilisation vars de fichier inclus

Quand j'arraystore.php inclus sur une autre page et essayer d'utiliser le tableau, il ne fonctionne pas? devrait-il, ou est-il un moyen d'importer le var pour l'utiliser dans la nouvelle page? Peut-être sérialiser et envoyer en tant que constructeur de la classe en usage sur la deuxième page? cela fonctionnerait-il?

+2

S'il vous plaît montrer le arraystore.php. S'il ne contient que la sortie littérale de 'var_export', il ne peut pas fonctionner - ce n'est pas une instruction PHP valide –

+0

Quel est le but de ce tableau? Je suis assez sûr que vous utilisez abusivement cette fonctionnalité –

Répondre

0

var_export() n'est pas destiné à être un format d'échange de données. C'est une déclaration de débogage. Si vous souhaitez enregistrer certains objets pour l'avenir, effectuez une sérialisation à la place. Il gère également correctement l'encodage des caractères.

$serialized_store = serialize($var); 
fwrite($fp, $serialized_store); 

Et vous pouvez lire facilement revenir:

$serialized_store = file_get_contents('arraystore.php'); 
$var = unserialize($serialized_store); 

Cette méthode évite d'utiliser eval(). It is almost evil.

Cependant, vous pouvez utiliser JSON pour le format de magasin.

$json_store = json_encode($var); 
fwrite($fp, $json_store); 
// ... 
$json_store = file_get_contents('arraystore.json'); 
$var = json_decode($json_store); 
+0

pourquoi eval ou json quelque chose qui peut être juste inclus? –

+0

@Col. Shrapnel: ce n'est pas à moi de répondre, mais à Liam Bailey. Il a décrit un problème et j'ai fourni une solution. –

+0

Il n'a pas un seul problème. var_export()/include est excellent lorsqu'il est utilisé correctement. –

0

Le tableau est maintenant une chaîne dans le fichier texte. Pour importer:

$str=file_get_contents('arraystore.php'); 
$var=eval('return '.$str.';') 
0

Pourriez-vous nous indiquer votre fichier arraystore.php?

arraystore.php doit regarder ce similiar à:

<?php 
    $array = array(
    1 => "I'm a String", 
    'stringKey' => true, 
    'foo' => "bar" 
); 
?> 

Je suis assez sûr, vous avez oublié le php-Tag.

0

Vous pouvez le faire en utilisant eval:

$arrayString = file_get_contents('arraystore.php'); 
$array = eval('return ' . $arrayString . ';'); 

Cependant, comme eval est le mal que vous pouvez écrire ce qui suit à votre fichier au lieu de la sortie var_export ordinaire():

<?php 
return your_var_export_output_here; 
?> 

Ensuite, vous serez en mesure d'utiliser le code suivant pour charger le tableau:

$array = include 'arrayStore.php'; 

Une autre opti sur serait d'affecter le tableau à une variable dans votre arrayStore.php, puis en utilisant simplement cette variable après avoir inclus/exigeant le arrayStore.php

+0

Pourquoi le downvote? Si quelque chose dans ma réponse est incorrecte, s'il vous plaît laissez un commentaire. – ThiefMaster

Questions connexes