2012-08-02 13 views
8

Zawsze zastanawiałem się, czy to możliwe, aby wykonać następujące czynności w PHP:Echo integer na tej samej linii wyjściowej podczas jej zwiększania?

for($x = 1; $x <= 50; $x++) 
    echo $x; 

wyjście to będzie:

1234 etc... 

Oczywiście nie byłoby to kod specjalnie ponieważ byłoby niemal natychmiastowe i nie będziecie nawet mogli zobaczyć, jak odbywa się inkrementacja. Teraz na moje pytanie: czy byłoby możliwe echo go, usunąć, powtórzyć? Po prostu wynik powinien być na tej samej linii od początku do końca. Nie wiem, jak to wytłumaczyć lub pokazać, ale tutaj jest przykład (nieco):

1 (backspace) 2 (backspace) etc... 

Mam nadzieję, że można go zrozumieć, nie wiem jak inaczej to wytłumaczyć .-.

Dziękuję za pomoc!

EDYCJA: To jest na konsolę przy okazji, przepraszam, że zapomniałem o tym. To nie jest dla sieci!

+0

nie sądzę, że jest to możliwe tylko z PHP ... – Oussama

+0

co znaczy 'echo go, należy go usunąć, należy powtórzyć', chcesz usunąć 1 gdy 2 jest wyprowadzane? jak aktualizacja na żywo? – lusketeer

+0

Wartość echa $ x, następnie znak backspace lub delete każdego znaku w ciągu $ x. try chr (127) – Waygood

Odpowiedz

19

Jeśli prowadzisz swój kod w CLI:

echo $x."\r"; 
+0

Lubię to podejście lepiej niż moje CR, ale nie LF +1 – Waygood

+0

To krępujące ... dziękuję bardzo haha ​​xD. – user1488335

+0

Nie ma za co;) – Chibani

2

Możesz to zrobić z Javascript dość łatwo, ale ponieważ PHP genereruje stronę, a następnie ją odsyła, nie byłoby to coś, co mógłbyś użyć bezpośrednio do PHP, przynajmniej jeśli twój cel końcowy pozwala użytkownikowi widzieć zmiany w momencie ich wystąpienia.

Edytuj: Było to przy założeniu, że byłeś w sieci, więc nie masz pewności, ponieważ zaktualizowałeś pytanie, aby odnieść się do konsoli.

2

Przy zwykłym wyjściu php przechodzi do ustawienia odpowiedzi HTTP nie, nie jest możliwe. Wszystko, co pojawia się na ekranie użytkownika, przeszło przez sieć i nie można go już kontrolować.

Ale jeśli pracujesz w środowisku CLI, dostępne są biblioteki rysowania okien oparte na pełnym znaku, takie jak ncurses, których możesz użyć do przesuwania pikseli (w tym przypadku znaków) w terminalu.

Powiązane problemy