PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_MULTI_STATEMENTS => false ); $pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option); } catch (PDOException $e) { // 接続エラーのときエラー内容を取得する $error_message[] = $e->getMessage(); } $keyword = htmlentities(isset($_GET['keyword'])) ? htmlentities($_GET['keyword']) : ''; $userid = htmlentities($_GET['userid']); $messages = array(); if (!empty($pdo)) { $dbh = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST, DB_USER, DB_PASS, array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true, )); $messageQuery = $dbh->prepare("SELECT account,username,ueuse,uniqid,rpuniqid,datetime,photo1,photo2,video1,favorite, abi, abidate FROM ueuse WHERE ueuse LIKE :keyword OR abi LIKE :keyword ORDER BY datetime DESC"); $messageQuery->bindValue(':keyword', '%' . $keyword . '%', PDO::PARAM_STR); $messageQuery->execute(); $message_array = $messageQuery->fetchAll(); // ユーズ内の絵文字を画像に置き換える function replaceEmojisWithImages($postText) { // ユーズ内で絵文字名(:emoji:)を検出して画像に置き換える $pattern = '/:(\w+):/'; $postTextWithImages = preg_replace_callback($pattern, function($matches) { $emojiName = $matches[1]; return "$emojiName"; }, $postText); return $postTextWithImages; } function replaceURLsWithLinks($postText) { // URLを正規表現を使って検出 $pattern = '/(https?:\/\/[^\s]+)/'; preg_match_all($pattern, $postText, $matches); // 検出したURLごとに処理を行う foreach ($matches[0] as $url) { // ドメイン部分を抽出 $parsedUrl = parse_url($url); $domain = isset($parsedUrl['host']) ? $parsedUrl['host'] : ''; // ドメインのみを表示するaタグを生成 $link = "$domain"; // URLをドメインのみを表示するaタグで置き換え $postText = str_replace($url, $link, $postText); } return $postText; } $messages = array(); foreach ($message_array as $row) { $messages[] = $row; } // ユーザー情報を取得して、$messages内のusernameをuserDataのusernameに置き換える foreach ($messages as &$message) { $userQuery = $pdo->prepare("SELECT username, userid, profile, role FROM account WHERE userid = :userid"); $userQuery->bindValue(':userid', $message["account"]); $userQuery->execute(); $userData = $userQuery->fetch(); if ($userData) { $message['username'] = $userData['username']; $message['role'] = $userData['role']; } } if(!empty($messages)){ foreach ($messages as $value) { $fav = $value['favorite']; // コンマで区切られたユーザーIDを含む変数 // コンマで区切って配列に分割し、要素数を数える $favIds = explode(',', $fav); $value["favcnt"] = count($favIds)-1; $messageDisplay = new MessageDisplay($value, $userid); $messageDisplay->display(); } }else{ echo '

ユーズがありません

'; } $pdo = null; } ?>