dosya dizisi ile içeriğini koymak

5 Cevap

Bu dosyalar seans adıyla anında oluşturulan, çünkü dosya içeriğini koymak için file_put_contents($file, $data); fonksiyonunu kullanıyorum, $data, bir çok-boyutlu bir dizi, ben dizi yankılanan am zaman yazdırır olduğunu dışarı ince ama dosyada hiçbir içeriği kelimesi Array dışında kaydedilmiş olsun

Ne yapmam ya da otomatik dosya oluşturur ve veri (dizi) kayıtları başka bir işlevi var ki?

Teşekkür ederiz.

5 Cevap

Sen yazımızda üzerine serialize() dizisi ve unserialize() dosyasını okuduktan sonra istiyorum.

$array = array('foo' => 'bar');
file_put_contents('foo.txt', serialize($array));
$array = unserialize(file_get_contents('foo.txt')));

Oh, ve ben gerçekten şimdi echo array('foo' => 'bar'); zaman Array nasıl diziyi echo'd, ama yazdırılacaktır yok.

Eğer okunabilir olmasını istiyorsanız, bunu yapabilirsiniz:

<?php
ob_start();
print_r($data);
$textualRepresentation = ob_get_contents();
ob_end_clean();

file_put_contents($file, $textualRepresentation);
?>

Definetelly Eğer var_export işlevini kullanabilirsiniz:

$contents = var_export($array, true);

file_put_contents('foo.txt', "<?php\n return {$contents};\n ?>");
// and then use something like this to get it:
$new_array = require('foo.txt');

Ayrıca json_encode ile bir JSON nesnesi olarak dizi kodlamak ve bir. Json dosyaya yazabilirsiniz içeri geri dosyayı yüklemek sonra serialize dizisi ve sonra userialize olabilir.

Sen, bir dizinin her üyesi erişebilen bir özyinelemeli işlev kurmak bir dizi kendisi olup olmadığını kontrol, ve bu nedenle bu üye tekrar işlevini çağırırsanız, ve sadece kendi içeriğini yazdırmak değilse. Olabilir Bu gibi:

function file_put_contents_deep( $file, $data) {
  if ( is_array( $data ) {
    foreach ( $data as $item ) {
      if (is_array( $item ) {
        file_put_contents_deep( $file, $item );
      else {
        file_put_contents( $file, $item);
      }
    }
  } else {
    file_put_contents( $file, $data );
  }
}