*/ // Return source code if(isset($_GET['source'])) { header("Content-Type: text/plain"); die(file_get_contents(basename($_SERVER['PHP_SELF']))); } // See bbs.php for a description of vars.php require_once('vars.php'); // Regex callback, makes >>quotes into links function quote_link($match) { $query = "SELECT post_id FROM posts WHERE post_id=$1"; $result = pg_query_params($query, [$match[1]]) or die('Query failed: ' . pg_last_error()); $row_count = pg_num_rows($result); pg_free_result($result); if($row_count > 0) return "{$match[0]}"; else return "{$match[0]}"; } $dbc = pg_connect("host=$DB_HOST dbname=$DB_NAME user=$DB_USER password=$DB_PASSWORD") or die('Could not connect: ' . pg_last_error()); // Get posts $posts = []; $query = "SELECT post_id, name, trip, email, comment, img, spoiler, TO_CHAR(post_time, 'Dy, DD Mon YYYY HH24:MI:SS TZHTZM') AS ts " . "FROM posts ORDER BY posts.post_time DESC LIMIT 10"; $result = pg_query($query) or die('Query failed: ' . pg_last_error()); while($row = pg_fetch_array($result)) { // Process quotes, links, and newlines $comment = NULL; if(!empty($row['comment'])) { $comment = $row['comment']; $comment = preg_replace('/^>(?!>\d).+/m', '$0', $comment); $comment = preg_replace('/(?:https?|mailto|tel|ftp):[^\s]+/m', '$0', $comment); $comment = preg_replace_callback('/>>\s*(\d+)/', 'quote_link', $comment); $comment = str_replace("\n", "
", $comment); } $name = $row['name']; if(!empty($row['trip'])) $name .= '◆' . $row['trip']; $comment = htmlspecialchars("

$comment

"); $img = ($row['spoiler'] == 't') ? (ASSETS_PATH . 'spoiler.gif') : (THUMB_PATH . preg_replace('/\.(?:png|gif|bmp)$/', '.jpg', $row['img'])); $posts[] = [ 'title' => "New post by $name", 'link' => $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['SERVER_NAME'] . '/#p' . $row['post_id'], 'description' => $comment, 'author' => $name, 'pubDate' => $row['ts'], 'guid' => 'p' . $row['post_id'], 'img' => empty($row['img']) ? NULL : [ 'url' => $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['SERVER_NAME'] . '/' . $img, 'length' => filesize($img), 'type' => mime_content_type($img) ] ]; } pg_close($dbc); header("Content-Type: application/rss+xml"); ?> BBS | ピケ.コム http://db.universal-team.net dumb PHP BBS because I was bored en-US <?php echo $post['title']; ?>