当前位置:首页 > PHP

php实现监听

2026-03-12 20:41:38PHP

监听文件变化

使用PHP内置的inotify扩展可以监听文件系统事件。需要确保服务器安装了inotify扩展并启用。

$watcher = inotify_init();
$watchDescriptor = inotify_add_watch($watcher, '/path/to/directory', IN_MODIFY);

while (true) {
    $events = inotify_read($watcher);
    foreach ($events as $event) {
        echo "File {$event['name']} was modified\n";
    }
}

监听网络端口

通过socket扩展可以创建TCP/UDP服务器监听端口。

php实现监听

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, '0.0.0.0', 8080);
socket_listen($socket);

while (true) {
    $client = socket_accept($socket);
    $data = socket_read($client, 1024);
    echo "Received: $data";
    socket_close($client);
}

监听数据库变化

使用数据库触发器结合PHP轮询可以实现监听表变化。

php实现监听

$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
$lastId = 0;

while (true) {
    $stmt = $pdo->query("SELECT * FROM table WHERE id > $lastId ORDER BY id DESC LIMIT 1");
    if ($row = $stmt->fetch()) {
        $lastId = $row['id'];
        echo "New record: " . json_encode($row);
    }
    sleep(1);
}

监听进程状态

通过proc_openstream_select可以监听子进程输出。

$descriptors = [
    0 => ["pipe", "r"],
    1 => ["pipe", "w"],
    2 => ["pipe", "w"]
];

$process = proc_open('long-running-command', $descriptors, $pipes);

while (true) {
    $read = [$pipes[1]];
    $write = $except = null;

    if (stream_select($read, $write, $except, 0, 200000) > 0) {
        echo fread($pipes[1], 8192);
    }

    if (!proc_get_status($process)['running']) {
        break;
    }
}

监听Redis订阅

使用phpredis扩展可以监听Redis的发布/订阅频道。

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->subscribe(['channel_name'], function ($redis, $channel, $message) {
    echo "Received $message from $channel\n";
});

标签: php
分享给朋友:

相关文章

php实现购物车

php实现购物车

PHP实现购物车功能 购物车功能是电商网站的核心模块之一,通常涉及商品添加、删除、数量修改和结算等操作。以下是使用PHP实现购物车功能的几种方法。 使用Session存储购物车数据 Session是…

php实现统计

php实现统计

PHP 实现统计功能 在 PHP 中实现统计功能通常涉及数据的收集、处理和展示。以下是一些常见的统计实现方法: 数据库数据统计 通过 SQL 查询可以直接从数据库中获取统计结果: $conn =…

php实现推送消息推送消息

php实现推送消息推送消息

PHP 实现消息推送的方法 使用 WebSocket 实现实时推送 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实现实时消息推送。 安装 Ratchet 库(WebSo…

php 伪静态实现

php 伪静态实现

PHP 伪静态实现方法 伪静态(URL Rewrite)是一种通过服务器配置将动态URL转换为静态URL的技术,提升URL的可读性和SEO效果。以下是几种常见的实现方式: 使用Apache的mod_…

php 实现锁

php 实现锁

PHP 实现锁的常见方法 文件锁(flock) 利用 flock 函数对文件进行独占锁定,适用于单机环境。 $fp = fopen("lockfile.lock", "w+"); if (f…

php 实现聊天功能

php 实现聊天功能

PHP 实现聊天功能的方法 使用 WebSocket 和 Ratchet 库 WebSocket 是实现实时聊天的理想选择。Ratchet 是一个 PHP 库,用于处理 WebSocket 连接。…