Rumah >pembangunan bahagian belakang >tutorial php >PHP melaksanakan pemberitahuan dan menolak mesej tentang laman web soal jawab pengetahuan

PHP melaksanakan pemberitahuan dan menolak mesej tentang laman web soal jawab pengetahuan

PHPz
PHPzasal
2023-07-01 08:49:451062semak imbas

PHP melaksanakan sistem pemberitahuan dan fungsi tolak mesej dalam laman web soal jawab pengetahuan.

Dengan perkembangan Internet, laman web soal jawab pengetahuan telah menjadi semakin popular, menyediakan pengguna dengan platform untuk pembelajaran interaktif dan berkongsi pengetahuan. Dalam laman web sedemikian, sistem pemberitahuan yang baik dan fungsi tolakan mesej amat penting untuk pengguna. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan sistem pemberitahuan dan fungsi push mesej dalam laman web soal jawab pengetahuan.

1. Reka bentuk dan pelaksanaan sistem pemberitahuan

  1. Reka bentuk pangkalan data

Untuk menyimpan maklumat pemberitahuan pengguna, kita perlu mereka bentuk jadual pangkalan data. Dengan mengandaikan kami menggunakan pangkalan data MySQL, kami boleh mencipta jadual bernama pemberitahuan dengan medan berikut:

  • id: Pengecam unik pemberitahuan, ditetapkan kepada kunci utama peningkatan automatik.
  • user_id: Pengecam unik pengguna.
  • kandungan: Kandungan khusus pemberitahuan.
  • created_at: Masa pemberitahuan dibuat.
  1. Penjanaan dan storan pemberitahuan

Apabila pengguna melakukan operasi berkaitan (seperti diikuti, menerima mesej peribadi, mempunyai jawapan baharu kepada soalan, dsb.), kami perlu menjana pemberitahuan yang sepadan dan menyimpannya dalam pangkalan data. Berikut ialah contoh kod yang dilaksanakan:

<?php

function generateNotification($user_id, $content) {
    $sql = "INSERT INTO notifications (user_id, content, created_at) VALUES (?, ?, NOW())";
    // 使用预处理语句减少 SQL 注入风险
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$user_id, $content]);
}

// 生成通知示例
$user_id = 1;
$content = "您的问题有新回答";
generateNotification($user_id, $content);
?>
  1. Paparan dan pembacaan pemberitahuan

Apabila pengguna log masuk ke tapak web, kami perlu memaparkan pemberitahuan pengguna kepada mereka dan menandakannya sebagai dibaca. Berikut ialah contoh kod ringkas:

<?php

function getNotifications($user_id) {
    $sql = "SELECT * FROM notifications WHERE user_id = ? ORDER BY created_at DESC";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$user_id]);
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

function markAsRead($notification_id) {
    $sql = "UPDATE notifications SET is_read = 1 WHERE id = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$notification_id]);
}

// 获取用户通知示例
$user_id = 1;
$notifications = getNotifications($user_id);
foreach ($notifications as $notification) {
    echo $notification['content'];
    markAsRead($notification['id']);
}
?>

2. Reka bentuk dan pelaksanaan fungsi tolak mesej

Untuk melaksanakan fungsi push mesej, kita boleh menggunakan protokol WebSocket dan menggabungkannya dengan sambungan Swoole PHP. Berikut ialah contoh reka bentuk dan pelaksanaan yang mudah:

  1. Mula-mula pasang sambungan Swoole dan dayakan fungsi WebSocket.
  2. Buat pelayan WebSocket dan pantau sambungan pengguna:
<?php

$server = new SwooleWebsocketServer("127.0.0.1", 9502);

$server->on('open', function (SwooleWebsocketServer $server, $request) {
    echo "用户 {$request->fd} 连接成功
";
});

$server->on('message', function (SwooleWebsocketServer $server, $frame) {
    echo "收到来自用户 {$frame->fd} 的消息: {$frame->data}
";
});

$server->on('close', function ($ser, $fd) {
    echo "连接关闭:{$fd}
";
});

$server->start();
?>
  1. Pantau operasi pengguna dan hantar mesej yang sepadan kepada pelanggan mengikut keperluan perniagaan:
<?php

$user_id = 1; // 发送消息的用户ID

function pushNotification($user_id, $content) {
    // 向用户发送消息
    // 这里省略具体的代码,可使用 $server->push 方法实现。
}

// 用户操作的代码示例
// ...

// 用户操作后发送消息示例
$content = "您关注的问题有新回答";
pushNotification($user_id, $content);
?>

Di atas adalah penggunaan PHP untuk melaksanakan sistem pemberitahuan laman web soal jawab pengetahuan dan contoh pelaksanaan mudah fungsi push mesej. Berdasarkan keperluan sebenar, anda boleh membangunkan dan mengoptimumkan fungsi yang lebih kompleks atas dasar ini. Harap artikel ini dapat membantu anda!

Atas ialah kandungan terperinci PHP melaksanakan pemberitahuan dan menolak mesej tentang laman web soal jawab pengetahuan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn