【アクア季節バナー】PHP 他のサイトで表示されている画像が、新しくURLで更新されてたとしても、そのURLで自動で表示する方法。
24.10.12
他のサイトで表示されている画像が新しいURLで更新されてたとしても、その新しいURLで画像を自動で表示する方法のご紹介です。
元サイトの画像URLが、例えばsample.jpgのまま同じで、内容・中身だけが変わっているなら、URLも~~sample.jpgのままで大丈夫ですよね。
でもURLがsample.jpgではなくsample01.jpgに新しく変わった場合は表示されませんよね?
その場合でもこのコードをなら、新たなURLを自動で取得して表示することが出来ます。
私は、チェーン店の本店サイトのバナーを管理画面で切り替えると、支店サイトのバナーも自動で切り替わる、というときに使いました。
方法は2通りあります。
元サイトで現在表示されている画像を以下のリストの中から検索して表示する方法。
元サイトデータの画像URLが分かっていて、そのうちの現在表示されいる画像のURLを検索し表示させます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php // 画像URLのリスト $imageUrls = [ 'https://www.nakameguro-aqua.com/wp-content/themes/nakameguro-aqua/image/season_img/season_accent01.png', 'https://www.nakameguro-aqua.com/wp-content/themes/nakameguro-aqua/image/season_img/season_accent02.png', 'https://www.nakameguro-aqua.com/wp-content/themes/nakameguro-aqua/image/season_img/season_accent03.png', 'https://www.nakameguro-aqua.com/wp-content/themes/nakameguro-aqua/image/season_img/season_accent04.png', 'https://www.nakameguro-aqua.com/wp-content/themes/nakameguro-aqua/image/season_img/season_accent05.png', 'https://www.nakameguro-aqua.com/wp-content/themes/nakameguro-aqua/image/season_img/season_accent06.png', 'https://www.nakameguro-aqua.com/wp-content/themes/nakameguro-aqua/image/season_img/season_accent07.png', ]; // 対象ページのURL $targetPageUrl = 'https://www.nakameguro-aqua.com'; $foundImage = false; // 対象ページのHTMLを取得 $pageContent = file_get_contents($targetPageUrl); // HTML内の画像を検索 foreach ($imageUrls as $url) { // 画像のURLがページ内に存在するか確認 if (strpos($pageContent, $url) !== false) { echo '<img src="' . htmlspecialchars($url) . '" alt="Displayed Image" id="season_accent">'; $foundImage = true; break; // 最初に見つけた表示されている画像を表示してループを抜ける } } if (!$foundImage) { echo '表示されている画像が見つかりませんでした。'; } ?> |
Webスクレイピングを使う方法
元サイトのデータから、最新に更新された画像データを抽出する方法です。他社サイト場合は対象サイトの利用規約に違反する可能性がありますので、必ず確認してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php // 対象のページを取得 $pageContent = file_get_contents('https://www.nakameguro-aqua.com/'); // 正規表現で画像のURLを取得(例: imgタグ内) preg_match('/<img[^>]+src="([^">]+)"/', $pageContent, $matches); if (isset($matches[1])) { $imageUrl = $matches[1]; echo '<img src="' . htmlspecialchars($imageUrl) . '" alt="Latest Image" id="season_accent">'; } else { echo '画像が見つかりませんでした。'; } ?> |
ちなみにACFを使ってラジオボタンで画像を切り替える時の出力
本店サイトの画像(バナー)を管理画面からラジオボタンで切り替える出力コードは以下です。
1 2 3 4 5 6 7 8 9 10 |
<?php // フィールド名areaを取得 752806は管理画面のページIDを入力 $area = get_field('season_img',752806); // ラジオボタンフィールドの値を取得 $areaValue = $area['value']; // ラジオボタンフィールドのラベルを取得 $areaLabel = $area['label']; ?> <img src="<?php bloginfo('template_directory'); ?>/image/season_img/<?php echo $areaValue; ?>.png" id="season_accent"> |
お役に立てましたらadsenseクリックお願いします!
いかがでしたでしょうか?もしお役に立てましたら、お賽銭のつもりでadsenseをポチっとクリックお願いします!↓上手くいきますようにお祈りしておきます!
関連記事
-
2022.06.24 XサーバーをSSL化した後にリダイレクトさせる方法
-
2023.06.20 BackWPupの使い方・復元の仕方
-
2024.06.28 HTML/CSSの基本: 初心者Webデザイナー向けガイド
-
2018.10.27 デザインセンスの良いフリー画像
-
2024.09.10 All-in-One WP Migration 容量の上げ方2G
-
2024.06.28 カラースキームの選び方: 初心者Webデザイナー向けガイド