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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

YouTube

YouTubeとはユーザーがビデオをアップロード・共有・閲覧できるビデオ共有ウェブサイトです。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

3124閲覧

自分のウェブサイト上でyotubeを再生しようとするとエラーになる。

退会済みユーザー

退会済みユーザー

総合スコア0

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

YouTube

YouTubeとはユーザーがビデオをアップロード・共有・閲覧できるビデオ共有ウェブサイトです。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/05/20 05:19

編集2018/05/20 09:38

下記は、youtubeの自分のチャンネルの最新動画を表示させるソースです。
これをサーバにアップするとなぜかウェブサイト上にPHPの一部が表示されて、動画が再生できず。
エラーが発生しましたと動画に表示されてしまいます。

解決策をアドバイス頂けると幸いです。

参考にしたサイト:https://sakic.jp/blog/web/latest-youtube-channel

「現象」
イメージ説明

<!-- box3 --> <article class="box3"> <p><img src="img/title3.png" width="330" height="138" alt="youtube"></p> <div class="box_txt"> <?php $url = "https://www.youtube.com/feeds/videos.xml?channel_id=UC-xxxxxxxxxxxxxxxxx"; $rss = file_get_contents($url); $rss = preg_replace("/<([^>]+?):(.+?)>/", "<$1_$2>", $rss); $rss = simplexml_load_string($rss,'SimpleXMLElement',LIBXML_NOCDATA); foreach($rss->entry as $value): ?> <iframe width="322" height="247" src="https://www.youtube.com/embed/<?php echo htmlspecialchars($value->yt_videoId, ENT_QUOTES, 'UTF-8') ?>" frameborder="0" allowfullscreen></iframe> <?php break; endforeach; ?> </div> </article>

「ソース全体」

<?php require('./news/wp-load.php'); ?> <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="css/top_style.css"> <script src="js/jquery-3.2.1.min.js"></script> <title>aaaaaaaa</title> </head> <body> <!-- main_box --> <section id="main_box" class="clearfix"> <!-- box1 --> <article class="box1"> <p><img src="img/title1.png" width="560" height="138" alt="ピックアップ"></p> <div class="box_txt"> <p><img src="img/p.jpg" width="560" height="250" alt="ピックアップ画像"></p> </div> </article> <!-- box1 --> <!-- box3 --> <article class="box3"> <p><img src="img/title3.png" width="330" height="138" alt="youtube"></p> <div class="box_txt"> <?php $url = "https://www.youtube.com/feeds/videos.xml?channel_id=UC-1QaEudvHG6K8iZOOQmWEQ"; $rss = file_get_contents($url); $rss = preg_replace("/<([^>]+?):(.+?)>/", "<$1_$2>", $rss); $rss = simplexml_load_string($rss,'SimpleXMLElement',LIBXML_NOCDATA); foreach($rss->entry as $value): ?> <?php print($rss); ?> <iframe width="322" height="247" src="https://www.youtube.com/embed/<?php echo htmlspecialchars($value->yt_videoId, ENT_QUOTES, 'UTF-8') ?>" frameborder="0" allowfullscreen></iframe> <?php break; endforeach; ?> </div> </article> <!-- box3 --> </section> <!-- main_box --> <!-- sub_box --> <section id="sub_box" class="clearfix"> <!-- box2 --> <article class="box2"> <p><img src="img/title2.png" width="560" height="138" alt="ニュース"></p> <div class="box_txt"> <ul class="wp"> <?php $posts = get_posts("numberposts=5&category=3&orderby=post_date&offset=0"); foreach ($posts as $post): setup_postdata($post); ?> <li> <p> <?php the_time('Y.m.d') ?> :<a href="<?php the_permalink() ?>"> <?php the_title() ?> </a></p> </li> <?php endforeach; ?> </ul> <p class="article_p"><a href="http://aaaaaaaa.jp/news/category/new/">ニュース一覧</a></p> </div> </article> <!-- box2 --> <!-- box4 --> <article class="box4"> <p><img src="img/title4.png" width="330" height="138" alt="ツイッター"></p> <p class="box_txt"><a class="twitter-timeline" width="330px" height="250px" href="https://twitter.com/aaaaaaaaa?ref_src=twsrc%5Etfw">Tweets by aaaaaaaa</a> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p> </article> <!-- box4 --> </section> <!-- sub_box --> </body> </html>

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

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

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

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

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

m.ts10806

2018/05/20 08:54

何を目的としたコードなのでしょうか。要件・目的部分をもう少し具体的に記載してください。
退会済みユーザー

退会済みユーザー

2018/05/20 08:55

ありがとうございます。自分のウェブ最後にyoutubeの自分のチャンネルの最新動画を表示させることを目的としています。
m.ts10806

2018/05/20 08:59

いえ、その部分は既に質問にあるので分かっています。聞き方が悪かったので申し訳ないです。コード自体、ちゃんと目的の通りに組めているのか(目的に向かっているのか)といった部分です。例えば、ローカルでは問題なく動いた、とかその辺りの確証があってサーバにアップしたのか、とか。ブラウザ開発ツールのコンソールログの確認とか、サーバーのエラーログの確認とか、そもそもPHP動くの?とか、質問者さんしかできない確認事項があるので。
退会済みユーザー

退会済みユーザー

2018/05/20 09:03 編集

申し訳ありません。ローカルでも同じ現象が起きてしまいます。Chromeの検証機能を使ったのですが、]+?):(.+?)>/", "<$1_$2>", $rss); $rss = simplexml_load_string($rss,'SimpleXMLElement',LIBXML_NOCDATA); foreach($rss->entry as $value); ?>までが文字列として表示されてしまっています。またwordpressを導入している部分がウェブサイトにあるのですがそちらは問題なくうごいています。
m.ts10806

2018/05/20 09:03

場所的に> がhtmlの閉じタグとして認識されているような感じなので、その辺りを見てみてもいいかもしれません。
退会済みユーザー

退会済みユーザー

2018/05/20 09:04

ありがとうございます。確認してみます。
m.ts10806

2018/05/20 09:04

なるほど。ローカルで確認できる環境があるのでしたらローカルでできてからアップされた方が良いですね。
m.ts10806

2018/05/20 09:05

preg_replaceでは何を置換しようとしているのでしょうか? そこも含めて質問本文に追記していただけますか?
m.ts10806

2018/05/20 09:15

$rssを出力してみればおおよそ検討はつきそうかなと。
退会済みユーザー

退会済みユーザー

2018/05/20 09:16

やってみます。
m.ts10806

2018/05/20 09:17

私の環境では再現確認がとれなかったので別の箇所が邪魔している可能性もあります。回答には書いてみました。
退会済みユーザー

退会済みユーザー

2018/05/20 09:19

ありがとうございます。
guest

回答2

0

直接回答につながるか分からないですが、
UC-UCで取得できました。

https://www.youtube.com/feeds/videos.xml?channel_id=
の後にURLにあるチャンネルIDを入れただけです。UC-という形ではないんじゃないですかね。

同ソースでbreak;を外して該当チャンネルの動画一覧が取得できることも確認しました。

投稿2018/05/20 09:14

編集2018/05/20 09:18
m.ts10806

総合スコア80850

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

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

退会済みユーザー

退会済みユーザー

2018/05/20 09:24

ありがとうございます。書かれている通りに試してみたのですが、]+?):(.+?)>/", "<$1_$2>", $rss); $rss = simplexml_load_string($rss,'SimpleXMLElement',LIBXML_NOCDATA); foreach($rss->entry as $value); ?>だけはどうしても消えないようです。質問への追記・修正、ベストアンサー選択の依頼にかかれていたように別の何かが悪さをしているのかもしれないので調査してみます。
m.ts10806

2018/05/20 09:25

コード全体の提示は可能ですか?
退会済みユーザー

退会済みユーザー

2018/05/20 09:39

全体を表示しました。
m.ts10806

2018/05/20 09:46

うーん再現しないですね。 WordPress環境下ではないので、その部分のrequireは省いていますが、 正しくチャンネルIDを入れると出てきます。 file_get_contents()の failed to open stream: HTTP request failed! HTTP/1.0 404 Not FoundのWarningが出ます。 つまり、チャンネルIDが合っていないだけじゃないかなと。 全体表示されてますが、存在しないIDぽいので。 WordPress上で出来るか確認できてないので、私がアドバイスできるのはここまでですね。
m.ts10806

2018/05/20 09:47

公開IDじゃないと無理かもしれません。その辺りは設定次第ですね。
退会済みユーザー

退会済みユーザー

2018/05/20 23:49

別のアカウントもあるのでそちらでも試してみます。最初のアカウントは間違っていなかったので。
退会済みユーザー

退会済みユーザー

2018/05/21 00:07

別アカウントでも試してみましたがどうしても]+?):(.+?)>/", "<$1_$2>", $rss); $rss = simplexml_load_string($rss,'SimpleXMLElement',LIBXML_NOCDATA); foreach($rss->entry as $value); ?>これが表示されてしまい、再生するとエラーが出てしまいます。調査を続けます。
m.ts10806

2018/05/21 00:20

問題の箇所の>を取り除いてみて試してみてください。 /<([^>]+?):(.+?)>/ ↓ /<([^]+?):(.+?)>/ HTMLのソース表示で内容を見てみれば分かると思いますが、再生できないのはきちんと動画URLが生成できていないからだと思います。 そのpreg_replace()でやろうとしている正規表現の置換のところですね。 あと、チャンネルIDは存在しないもの(もしかしたら非公開のもの)なので正しい情報を入れてください。 もし正規表現での置換が正しい内容としても動画情報の一覧が正しくとれないチャンネルIDだと結局意図通りの情報はでてきません。
退会済みユーザー

退会済みユーザー

2018/05/21 00:48

preg_replace()のぶぶんを削除してみました。するとまだ再生はエラーになるものの、ウェブサイトに表示されるPHPがentry as $value): ?> だけになりました。 チャンネルは存在するもので、非公開にはなっていません。
退会済みユーザー

退会済みユーザー

2018/05/21 00:51

只今、PHP以外にもyoutubeの自分のチャンネルの最新動画を表示できないかも調査中です。
退会済みユーザー

退会済みユーザー

2018/05/21 00:56

それから一ヶ月前までは問題なく表示されていました。
退会済みユーザー

退会済みユーザー

2018/05/21 01:04

何度もすいません。ソースをみるとPHPのソースコードが見えてしまっていたので、試しにWordPressで新着情報に表示させるための記事をテストで書いてみたのですが、表示されませんでした。サーバが何か問題あるのかもしれません。もちろんローカルでも動画は表示されないのですが…
m.ts10806

2018/05/21 01:05

print($rss); ↑これ要らないと思います。
m.ts10806

2018/05/21 01:11

動画チャンネル側になにか問題起きてないですか?
退会済みユーザー

退会済みユーザー

2018/05/21 01:12

チャンネル側には何も問題は起きていません。print($rss);を消しました。
m.ts10806

2018/05/21 01:22

なるほど・・・ その正常だったという1ヶ月前から今のようになるまでの間に何か行ったことはありますか? バージョンアップとか、改修とか
退会済みユーザー

退会済みユーザー

2018/05/21 01:24

何も行っていません。動画アップくらいで設定をいじったりということはありません。サーバ側も何もいじっていません。
退会済みユーザー

退会済みユーザー

2018/05/21 01:26

すいません!.htaccessが何かの拍子に消えていたみたいです。アップロードしたら直りました。お騒がせしました!
m.ts10806

2018/05/21 01:27

うーん。WordPressのバージョンアップ、PHPのバージョンアップもないということですよね。 ほぼWordPress部分以外、同ソースで(違うチャンネルIDで)再現しないので、なんとも言えませんね。 file_get_contents()で取得したRSSの結果は気にはなっています。正規表現による置換が行われる直前に何かありそうな気がするので。
m.ts10806

2018/05/21 01:28

あーなるほど・・。そしたらWordPress自体そもそもちゃんと動いてなかったってことですよね。危ない危ない・・
退会済みユーザー

退会済みユーザー

2018/05/21 01:34

本当にお騒がせしました!
m.ts10806

2018/05/21 01:51

ひとまず解決したようで何よりです。
退会済みユーザー

退会済みユーザー

2018/07/01 07:30

遅くなりました!ありがとうございmす。
guest

0

ベストアンサー

.htaccessが何かの拍子に消えていたみたいです。アップロードしたら直りました。お騒がせしました!

投稿2018/05/21 01:35

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問