Bir Byte Array içine bir dosya okuma (PHP)

4 Cevap php

Ben bir dosya var. ama şimdi bir bayt diziye bu dosyayı okumak gerekir. Java veya C + + bunu yapmak çok kolay. ama PHP okuyabilir nasıl bulunamadı.

4 Cevap

Böyle bir dizeye dosyayı okuyabilir:

$data = file_get_contents("/tmp/some_file.txt");

Eğer C olur nasıl benzer tek bayt alabilirsiniz:

for($i = 0; $i < strlen($data); ++$i) {
    $char = $data[$i];
    echo "Byte $i: $char\n";
}

Referanslar:

Bkz PHP Manual on String access and modification by character

Dize s içinde Karakterler belirterek tarafından erişilebilir ve değiştirilebilir gibi dizilerin köşeli ayraçları dizesinden sonra istenilen karakter, ofset sıfır tabanlı $str[42]. Bu amaç için bir karakter dizisi olarak bir dize düşünün. Fonksiyonlar substr() ve en fazla 1 karakter çıkarmak veya değiştirmek istediğiniz zaman substr_replace() kullanılabilir.

Eğer dosyadan bayt arayan ve okuduktan sonra ise Veya, bir SplFileObject kullanabilirsiniz

$file = new SplFileObject('file.txt');
while (false !== ($char = $file->fgetc())) {
    echo "$char\n";
}

Ama bu bir bayt dizisi değil, ama bir dosya tanıtıcısı üzerinde yineleme. SplFileInfo SeekableIterator Interface uygular.

Ve bir dipnot düşmek üzerine, orada da

  • file - bir dizi dosyayı döndürür. Dizinin her elemanının hala bağlı yeni satır ile dosyasındaki bir satıra karşılık gelmektedir. Başarısızlık durumunda, dosya () FALSE döndürür.

çok php>

$data = file_get_contents("/tmp/some_file.txt");

best way to make for (not recomended in for use count, sizeof, strlen or other functions): $counter = strlen($data); for($i = 0; $i < $counter; ++$i) { $char = data[$i]; echo "Byte $i: $char\n"; }