我在linux中有程序,它在检测到新的连接套接字时创建/修改文件。它将ip记录在该文件中,并在客户端断开连接或断开连接时将其删除..
在php中我知道inotify但是它的阻塞和刷新不像java它没有..我怎么能用java和php这样做我可以监视linux中的文件并更新网站,linux中的文件已被修改?
谢谢..
例如在php ..
<?php
$fd = inotify_init();
$watch_descriptor = inotify_add_watch($fd, '/tmp/devfile.txt', IN_MODIFY);
touch('/tmp/devfile.txt');
while(true){
$events = inotify_read($fd);
$contents =file_get_contents('/tmp/devfile.txt');
echo $contents;
}
$read = array($fd);
$write = null;
$except = null;
stream_select($read,$write,$except,0);
stream_set_blocking($fd, 0);
inotify_read($fd);
$queue_len = inotify_queue_len($fd);
inotify_rm_watch($fd, $watch_descriptor);
fclose($fd);
?>
答案 0 :(得分:0)
Java 7支持类似inotify的文件通知。有关教程,请参阅here。
也许您可以找到或编写可以在PHP中使用的C程序?
答案 1 :(得分:0)
我不确定你的意思是“java和php”,但是如果你要找的是纯java方式来通知文件的更改,那么你可以使用java.nio.file。路径和WatchService api。
Here is an explanation from the Oracle documentation它是如何运作的。