質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

679閲覧

HTMLページでrssを取得したい

asayama

総合スコア15

RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/03/23 13:07

前提・実現したいこと

静的ページにrssを追加したく
https://shiritai.net/rssfeed/
こちらのページを参考にしたのですが
自分の環境ではうまく取得できませんでした。
どうすれば取得できるかご教授願いたいです。

該当のソースコード

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <script src="//code.jquery.com/jquery-1.12.1.min.js"></script> 7 <script type="text/javascript"> 8 (function($){ 9 $(function(){ 10 $.get('./rss.php',function(data){ 11 $('#feed').html(data); 12 }) 13 }) 14 })(jQuery); 15 </script> 16</head> 17 <body> 18 <div class="blogbox"> 19 <div id="feed"> 20 </div> 21 </div> 22 </body> 23</html>

php

1<?php 2date_default_timezone_set('Asia/Tokyo'); 3 4$url = "http://rssblog.ameba.jp/muhrdrums/rss20.xml"; 5$rss = simplexml_load_file($url); 6$output = ''; 7$i = 0; 8// 取得件数 9$max = 5; 10if($rss){ 11 foreach( $rss->channel->item as $item ) 12 { 13 /** 14 * タイトル 15 * $item->title ; 16 * リンク 17 * $item->link ; 18 * 更新日時のUNIX TIMESTAMP 19 * $timestamp = strtotime( $item->pubDate ) ; 20 * 詳細 21 * $item->description; 22 */ 23 if(!preg_match('/^PR:/',$item->title )){ 24 if($i < $max){ 25 $timestamp = strtotime( $item->pubDate ); 26 $date = date( 'Y.m.d',$timestamp ); 27 $output .= '<dt>'; 28 $output .= '<time datetime="' . $item->pubDate . '">' . $date . '</time>'; 29 $output .= '</dt>'; 30 $output .= '<dd>'; 31 $output .= '<a href="'. $item->link .'" target="_blank">' . $item->title . '</a>'; 32 $output .= '</dd>'; 33 $i++; 34 } 35 } 36 37 } 38} 39 40echo '<dl class="list">'. $output . '</dl>'; 41 42?>

備考

・ファイル名はindex.html、rss.phpです。
・全て同じ階層に入れています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/03/23 13:29 編集

ちなみに私の手元の環境(XAMPP PHP7.3)では提示されたコードで取得できました
asayama

2020/03/24 00:13

ご確認ありがとうございます。 rss.phpは読み込めるのですがdataが以下のように返ってきます。 お手数ですが、ご確認お願い致します。 channel->item as $item ) { /** * タイトル * $item->title ; * リンク * $item->link ; * 更新日時のUNIX TIMESTAMP * $timestamp = strtotime( $item->pubDate ) ; * 詳細 * $item->description; */ if(!preg_match('/^PR:/',$item->title )){ if($i < $max){ $timestamp = strtotime( $item->pubDate ); $date = date( 'Y.m.d',$timestamp ); $output .= ' '; $output .= '' . $date . ''; $output .= ' '; $output .= ' '; $output .= '' . $item->title . ''; $output .= ' '; $i++; } } } } echo ' '. $output . ' '; ?>
guest

回答1

0

ベストアンサー

HTMLをWebサーバー配下ではなくブラウザにファイルドロップで実行してませんか?
phpコードがそのまま出力されているように見えます。

JavaScriptで指定しているPHPも相対パスで書かれているので、HTMLのパスが起点となります
HTMLもhttp://からアクセスしてください。

投稿2020/03/24 00:19

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asayama

2020/03/24 00:34

現状、テスト環境http://~/index.htmlでアクセスしており rss.phpもindex.htmlと同階層に入れております。 ソース自体に問題ないということは サーバー的な問題だったりしますでしょうか?
m.ts10806

2020/03/24 00:58

んー、でもみた感じPHPとしてではなくHTMLとして解釈されてるように見えます。 <?phpの < と foreach( $rss->channelの > に囲われてHTMLタグとして見なされてるのは間違いないです。 httpでアクセスせずにrss.phpをそのままブラウザにドロップすると同じ表示になるはず。 ちなみにrss.phpを直接httpでアクセスするとちゃんと出てますか?
asayama

2020/03/24 12:20

すいません、サーバーを変えたらphpとして認識した見たいです。 ただ、代わりに次のようなエラーが出てきてしまいました。 Warning: simplexml_load_file(): http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /home/~/public_html/rss.php on line 5 Warning: simplexml_load_file(http://rssblog.ameba.jp/muhrdrums/rss20.xml): failed to open stream: no suitable wrapper could be found in /home/~/public_html/rss.php on line 5 Warning: simplexml_load_file(): I/O warning : failed to load external entity "http://rssblog.ameba.jp/muhrdrums/rss20.xml" in /home/~/public_html/rss.php on line 5 もし原因がお分かりであればご教授いただければ幸いです。
asayama

2020/03/24 14:00

ありがとうございます、原因がわかりました。 一応設定はprint_r( ini_get_all() で確認できました。 ただ、php.ini ファイルが直接いじれないレンタルサーバー(XFREE)でして、 サーバー管理画面内のphp.ini 設定項目でallow_url_fopenの項目がない場合 対処法などあったりしますでしょうか?
m.ts10806

2020/03/24 14:03

ini_set() という機能がありますが、 https://www.php.net/manual/ja/function.ini-set.php これで使えなければ完全に制限されてると思って良いと思います。 その手のレンタルサーバーは共用サーバーと言って、他のユーザーとも設定を共有していたりするので、特に全体に影響するような設定がいじれなくなっている可能性もあります。
asayama

2020/03/25 11:30

なるほど、そういう事なのですね。 とりあえずxamppで環境を組んでみたところ無事動作いたしました。 今使っているテスト環境ではできないものだと割り切ります、 ご丁寧にどうもありがとうございました!
m.ts10806

2020/03/25 11:32

解決されたようで何よりです。 無料のサーバーはやはり「それなり」ということですね。 安くても一通り基本的なことができるレンタルサーバーもあるので、 もし今後「アプリケーションを作って公開していきたい」「自分でサイトを作ってみたい」というのでしたらご検討ください。 ※学習だけならローカルで十分かと思いますし、仮想環境という手もあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問