una todas que página las integra importancia for etiquetas ejemplos dentro código cuál cree correctamente con como combinar codigo php tail

todas - ¿Cómo ver un archivo escribir en PHP?



todas las etiquetas de php (6)

A continuación es lo que he adaptado desde arriba. Llámelo periódicamente con una llamada ajax y adjúntelo a su ''titular'' (textarea) ... Espero que esto le ayude ... ¡gracias a todos ustedes que contribuyen al stackoverflow y otros foros similares!

/* Used by the programming module to output debug.txt */ session_start(); $_SESSION[''tailSize''] = filesize("./debugLog.txt"); if($_SESSION[''tailPrevSize''] == '''' || $_SESSION[''tailPrevSize''] > $_SESSION[''tailSize'']) { $_SESSION[''tailPrevSize''] = $_SESSION[''tailSize'']; } $tailDiff = $_SESSION[''tailSize''] - $_SESSION[''tailPrevSize'']; $_SESSION[''tailPrevSize''] = $_SESSION[''tailSize'']; /* Include your own security checks (valid user, etc) if required here */ if(!$valid_user) { echo "Invalid system mode for this page."; } $handle = popen("tail -c ".$tailDiff." ./debugLog.txt 2>&1", ''r''); while(!feof($handle)) { $buffer = fgets($handle); echo "$buffer"; flush(); } pclose($handle);

Quiero realizar movimientos como el comando tail con PHP, pero ¿cómo puedo verlos adjuntar al archivo?


Checkout code.google.com/p/php-tail . Es una implementación de 2 archivos con PHP y Javascript y tiene muy poca sobrecarga en mis pruebas.

Incluso admite el filtrado con una palabra clave grep (útil para ffmpeg que escupe velocidad de fotogramas, etc., cada segundo).


En lugar de sondear el tamaño del archivo, filemtime hora de modificación del archivo: filemtime


No creo que haya alguna forma mágica de hacerlo. Solo tiene que sondear continuamente el tamaño del archivo y generar cualquier dato nuevo. En realidad, esto es bastante fácil, y lo único que se debe tener en cuenta es que el tamaño de los archivos y otros datos estadísticos se almacenan en caché en PHP. La solución a esto es llamar a clearstatcache() antes de enviar cualquier dato.

Aquí hay una muestra rápida, que no incluye ningún manejo de errores:

function follow($file) { $size = 0; while (true) { clearstatcache(); $currentSize = filesize($file); if ($size == $currentSize) { usleep(100); continue; } $fh = fopen($file, "r"); fseek($fh, $size); while ($d = fgets($fh)) { echo $d; } fclose($fh); $size = $currentSize; } } follow("file.txt");


$handle = popen("tail -f /var/log/your_file.log 2>&1", ''r''); while(!feof($handle)) { $buffer = fgets($handle); echo "$buffer/n"; flush(); } pclose($handle);


$handler = fopen(''somefile.txt'', ''r''); // move you at the end of file fseek($handler, filesize( )); // move you at the begining of file fseek($handler, 0);

Y probablemente querrá considerar un uso de stream_get_line