Php bir dosyaya tek boyutlu bir dizi yazmak nasıl aka vs file_put_contents fopen + fwrite

3 Cevap php

Veri: $data = array('Alice', 'Bob', 'Carol', 'David', 'Elizabeth', 'Frank');


Yöntem A:

file_put_contents('filename.ext', implode("\n", $data) );

Yöntem 2:

$fp = fopen('filename.ext', 'w');
foreach($data as $name)
{
  fwrite($fp, $name . "\n");
}
fclose($fp);


Bir yöntem diğer üzerinde herhangi önemli cezalar var mı?

Hatta bir maliyetle herhangi bir önemli daha hızlı? Hiçbir ücret ödemeden?

Preferences? Is it situational? Which would you use in production code vs 1-use throwaway scripts?

Not: dosyanın yazılabilir olup olmadığını görmek için kontrol herhangi bir sorunları görmezden, ya filepointer false edin!. 0 sürtünme ve sadece "işleri" her şeyi varsayalım.

3 Cevap

file_put_contents() kazanır. fopen / yazma / yakın sebepsiz ayrıntılı ediliyor.

Cletus dediği gibi, sadece) (serialize verileri serialize.

Bazen serialize kırmak (ama o gerekiyorsa online mb_serialize () çeşitli userland uygulamalarını bulabilirsiniz) baytlı karakterleri ile uğraşıyoruz sürece.

Ben performans etkileri hakkında emin değilim, ama bir json-dizgeleştirilmiş (json_encode ()) gibi bir dizi depolamak tercih edebilirsiniz. Bazı diğer sistem şimdiye kadar dosyayı okumak gerekiyor eğer bu şekilde, bunun yerine php-özel biri, standart bir seri hale getirme biçimi kullanarak olacak. Ben ciddi herhangi bir gerçek performans farkı bir yol veya başka orada şüpheliyim.