How can PHP cookies be utilized to track user activity and mark read/unread threads in a forum?

To track user activity and mark read/unread threads in a forum using PHP cookies, you can set a cookie when a user reads a thread and check this cookie to determine if a thread has been read or not. When a user reads a thread, set a cookie with the thread ID as the key and a timestamp as the value. When displaying a list of threads, check if the cookie with the thread ID exists and compare the timestamp to determine if the thread is read or unread.

```php
// Set a cookie when a user reads a thread
if(isset($_GET['thread_id'])) {
    $thread_id = $_GET['thread_id'];
    $read_threads = isset($_COOKIE['read_threads']) ? unserialize($_COOKIE['read_threads']) : array();
    $read_threads[$thread_id] = time();
    setcookie('read_threads', serialize($read_threads), time() + 3600 * 24 * 30); // Cookie expires in 30 days
}

// Check if a thread has been read
function isThreadRead($thread_id) {
    $read_threads = isset($_COOKIE['read_threads']) ? unserialize($_COOKIE['read_threads']) : array();
    if(array_key_exists($thread_id, $read_threads)) {
        // Check if the thread was read within the last 24 hours
        if($read_threads[$thread_id] >= (time() - 3600 * 24)) {
            return true;
        }
    }
    return false;
}
```
This code snippet demonstrates how to set a cookie when a user reads a thread and check if a thread has been read within the last 24 hours. It provides a basic implementation for tracking user activity and marking read/unread threads in a forum using PHP cookies.