PHP Eşzamanlı Dosya yazar

5 Cevap php

Ben de aynı dosyaya yazma iki farklı PHP dosyaları var. Her PHP komut dosyası iki farklı HTML sayfaları bir kullanıcı eylemi denir. Ben çağrılacak iki PHP dosyaları için mümkün olacak biliyorum, ama her ikisi de PHP dosyaları aynı anda dosyaya yazma girişimi olacak? Eğer evet ise, ne olacak? Ayrıca, bir PHP işlevi diğer daha az önemli olduğu gibi PHP bir (dosya yazma, sadece başarısız olur ve diğer PHP dosyasına yazabilirsiniz) incelikle başarısız yapmak mümkündür.

5 Cevap

Lütfen dikkat:

As of PHP 5.3.2, the automatic unlocking when the file's resource handle is closed was removed. Unlocking now always has to be done manually.

Güncellenmiş geriye dönük uyumlu kodu:

if (($fp = fopen('locked_file', 'ab')) !== FALSE) {
    if (flock($fp, LOCK_EX) === TRUE) {
        fwrite($fp, "Write something here\n");
        flock($fp, LOCK_UN);
    }

    fclose($fp);
}

yani fclose () artık bunu yapmaz, çünkü açıkça sürüsünü (.., LOCK_UN) aramak zorunda.

flock fonksiyonuna bir göz atın.

Dosya append olarak açıldı eğer POSIX atom erişimi belirtildiğini unutmayın. Bu, sadece birkaç parçacığı ile dosyaya ekleyebilirsiniz ve çizgiler bozuk almak anlamına gelir.

Ben bir düzine iplik ve birkaç yüz bin hatları ile test yaptım. Hatların hiçbiri bozulmuş idi.

BufferSize aşabilir bu 1kb fazla dizelerle işe yaramayabilir.

Bu aynı zamanda POSIX uyumlu değil windows işe yaramayabilir.

Bilginize: akın sadece * nix üzerinde çalışır ve Windows üzerinde mevcut değildir