PHP STDOUT'a arayan

3 Cevap php

Bu yeni yüzde görüntülemek için STDOUT'a güncellemek mümkün olup olmadığını ben merak ediyorum ben CLI çalışan bir php komut dosyası var ve ben şimdiki yüzde ilerlemesini görüntülemek istiyorum.

Ben geri sarma () veya fseek kullandığınızda () sadece bir hata mesajı atar.

3 Cevap

Bu kod bakın:

<?php
echo "1";
echo chr(8);
echo "2";

"Chr (8)" "backspace" için char beri çıkışı sadece 2 olduğunu.

Yani sadece geri gidip yeni yüzdesini yazdırmak için gereken karakter miktarını yazdırın.

Baskı "\ r" Linux ve Windows üzerinde de çalışıyor ama bir yağmurluk kesmek için gitmiyor

Çalışma örneği:

echo "Done: ";
$string = "";
for($i = 0; $i < 100; ++$i) {
    echo str_repeat(chr(8), strlen($string));
    $string = $i."%";
    echo $string;
    sleep(1);
}

Çıktı \r ve geri geçerli satırın ilk kolonuna almak için daha sonra yıkayın.

Bir konsol / terminaline yazma Çıktı raster geriye gitmek isteyen veya benzeri şeyler renkler eklemek yoksa şaşırtıcı derecede karmaşık - ve davranış kullandığınız konsol / terminal tipine bağlı olarak değişir. Uzun zaman önce bazı insanlar bir terminalin soyut bir temsilini yaratmayı ve bu yazma fikri geldi.

this article PHP bunu nasıl ayrıntıları için bkz.