外部ブログ(wordpress)のRSSを取得し、HPのトップ画面(index.php)にブログの情報(サムネイル・タイトル・日付)を自動取得する処理を行いました。
HPはSSLになっていますが、読み込まれたサムネイルのURLが「http://」となっているため、混合コンテンツとなってしまいます。」となっていました。また、index.phpに読み込む際のURLも「https://~」を指定しています。
ブログおよびブログ内画像のURLを確認したところ、ちゃんと「https://
どのようにすれば、混合コンテンツを解消できるでしょうか?
PHPに不慣れなもので申し訳ありませんが、何卒ご教授くださいますようお願いいたします。
下記がコードです。
<?php require_once "./Feed.php" ; $feed = new Feed ; $url = "https://●●●.jp/blog/feed/"; $rss = $feed->loadRss( $url ) ; $num = 3; $i = 0; $desW = 30; if ( $desW != 0){ $desW = ($desW*2)+2; } foreach( $rss->item as $item ) { if($i>=$num){ } else{ $title = $item->title ; $link = $item->link ; $timestamp = strtotime( $item->pubDate ) ; $description = $item->{"content:encoded"} ; if( preg_match_all('/<img([\s\S]+?)>/is', $description, $matches) ){ foreach( $matches[0] as $img ){ if ($img === reset($matches[0])) { if( preg_match('/src=[\'"](.+?jpe?g)[\'"]/', $img, $m) ){ $thumbnail = $m[1]; } } } } ?> <article> <a href="<?php echo $link; ?>" target="_blank"> <div style="background-image: url('<?php print $thumbnail; ?>');"></div> <p><?php echo date( "Y/m/d", $timestamp); ?></p> <header> <h3><?php echo $title; ?></h3> </header> </a> </article> <?php $i++; } } ?>
回答2件
あなたの回答
tips
プレビュー