RSSを格納して表示したいのですが、タイトルのみリンクとして表示されます 原因がわからないのですが、アドバイスいただけると助かります。 下記のコードで試しているのですが…
RSSを格納して表示したいのですが、タイトルのみリンクとして表示されます 原因がわからないのですが、アドバイスいただけると助かります。 下記のコードで試しているのですが… タイトルがエスケープされていないようです… var_dump('title');で確認したところstring(5) "title"となっております。 https://imgur.com/3Toyiga.jpg https://imgur.com/8jL7e23.jpg <?php try { $dsn = 'mysql:dbname=hlxclitx_wp1;host=localhost'; $user = 'hlxclitx_wp1'; $password = 'E.HrypHWxNmltXgC5eS26'; $dbh = new PDO($dsn, $user, $password); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //エラーが発生した時に、例外を投げる echo 'データベースへの接続が出来ました'; //RSSをまとめる $url1 = [ 'http://nns2ch.net/index.rdf', 'http://aqua2ch.net/index.rdf', 'https://worldfn.net/index.rdf', ]; foreach ($url1 as $url) { if (($rss = @simplexml_load_file($url)) === false) { continue; } echo "<h3>{$rss->channel->title}</h3>"; echo "<h4>{$url}</h4>"; foreach ($rss->item as $item) { $title = $item->title; $link = $item->link; $dc = $item->children('dc', true); $date = date('Y-m-d H:i:s', strtotime($dc->date)); $content = $item->children('content', true); $result = preg_match('/<img[^>]*src=\"([^"]+)\"[^>]*>/i', $content->encoded, $matches); if (1 == $result) { $img = $matches[1]; } else { $img = ''; } echo "<h5>{$title}</h5>"; var_dump('title'); echo '<ul>'; echo "<li>{$link}</li>"; echo "<li>{$date}</li>"; if (!empty($img)) { echo "<li>{$img}</li>"; echo "<li><img width=\"100\" src=\"{$img}\"></li>"; } else { echo '<li>画像なし</li>'; } echo '</ul>'; } } //ページリンク $pages = ceil($wp_query->found_posts / $posts_per_page); for ($i = 1; $i <= $pages; ++$i) { if (1 == $i) { $page_text = '<<'; } elseif ($i == $pages) { $page_text = '>>'; } else { $page_text = $i; } echo "<a href=\"?page={$i}\">[{$page_text}]</a>"; $last_page = $i; } //古いデータを削除 $sql = 'DELETE FROM rss_feed WHERE date < ?'; $stmt = $dbh->prepare($sql); $date = date('Y-m-d H:i:s', strtotime('-1 week')); $stmt->execute([$date]); } catch (PDOException $e) { echo $e->getMessage(); // err時はメッセージを表示 exit; } ?>
PHP・62閲覧