2012-08-02 12 views
8

Siempre me he preguntado si es posible hacer lo siguiente en PHP:Número entero de eco en la misma línea de salida mientras se incrementa?

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

esta seria:

1234 etc... 

Obviamente no sería este código específicamente ya que sería casi instantánea y ni siquiera sería capaz de ver el incremento tener lugar. Ahora a mi pregunta: ¿sería posible echo, eliminarla, repetir? Simplemente ponga la salida debe estar en la misma línea de principio a fin. No sé cómo explicarlo o mostrar, pero aquí es un ejemplo (un poco):

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

espero que puedan entender, no sé qué otra manera de explicarlo .-.

¡Gracias por la ayuda!

EDITAR: Esto es para la consola por cierto, lo siento, me olvidé de incluir eso. ¡Esto no es para la web!

+0

no creo que es posible solamente con PHP ... – Oussama

+0

lo que quiere decir 'eco, eliminarlo, repetir ', que quieres eliminar 1 cuando 2 se saca? como una actualización en vivo? – lusketeer

+0

valor de eco de $ x, luego un carácter de retroceso o eliminación de cada carácter en la cadena $ x. intente chr (127) – Waygood

Respuesta

19

Si ejecuta su código en la CLI:?

echo $x."\r"; 
+0

Me gusta este enfoque mejor que el mío CR pero no LF +1 – Waygood

+0

Eso es embarazoso ... muchas gracias jaja xD. – user1488335

+0

De nada;) – Chibani

2

Puede hacer eso con Javascript con bastante facilidad, pero como PHP genera la página y luego la envía, no sería algo que podría usar PHP directamente, al menos si su intención final es permitir que el usuario vea los cambios a medida que ocurren

Editar: Esto fue en el supuesto de que estabas en la web, por lo que no estoy seguro desde que actualizaste la pregunta para relacionarla con la consola.

2

Con la salida de php habitual va a la configuración de respuesta HTTP no, no es posible. Todo lo que aparece en la pantalla del usuario se ha ido a través de la red y ya no puedes controlarlo.

Pero si está ejecutando en un entorno CLI hay librerías de dibujo de ventana basadas en caracteres completos, como ncurses que puede usar para mover píxeles (en este caso, caracteres) en su terminal.

Cuestiones relacionadas