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

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

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

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

JavaScript

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

jQuery

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

Q&A

1回答

614閲覧

JavaScriptからPHP経由でニュース記事を取得したい

agepan

総合スコア66

PHP

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

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2020/02/17 04:25

編集2020/02/17 04:26

JavaScriptでGoogleのニュース記事を取得しようとしています。

ロリポップサーバー(PHPはCGIのみ対応)にajax.phpを置き、JavaScriptからGoogleニュースAPIに、そのPHPを中継させることで記事を取得できています(以下コード)。

検索ワードに『SMAP』と入れると、コンソール画面にSMAP関連の記事が一覧で取得できますが、検索ワードを『SMAP OR AAA』とすると、コンソールに以下のメッセージが表示され取得できません。前者では取得できて後者では取得エラーになる原因が分からず、回避策が分かる方教えていただければ幸いです。

ちなみに『SMAP OR AAA』としたURL『https://news.google.com/rss/search?q=SMAP OR AAA+&hl=ja&gl=JP&ceid=JP:ja』を、urx2.nuで短縮URLに変換し、そのURLをresultUrlに入れるとなぜか取得することができます。同じ短縮URLサービスであるBit.lyでもできるかと試すと、なぜかこちらでは何も取得できません。この動作の違いもよく分からないところです。

以上よろしくお願いいたします。

エラーメッセージ:

Access to XMLHttpRequest at 'https://www.AAAAAAAAAA.com/ajax.php?url=https%3A%2F%2Fnews.google.com%2Frss%2Fsearch%3Fq%3DSMAP%20OR%20AAA%2B%26hl%3Dja%26gl%3DJP%26ceid%3DJP%3Aja' from origin 'file://' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

JavaScript

1 // 検索ワード 2 var keyword = 'SMAP'; 3 4 // GoogleニュースAPIで取得するためのURLを作成 5 var url1 = 'https://news.google.com/rss/search?q=' 6 var url2 = '+&hl=ja&gl=JP&ceid=JP:ja' 7 8 var url = url1 + keyword + url2; 9 url = encodeURIComponent(url); // URLエンコード 10 var resultUrl = 'https://www.AAAAAAAAAAA.com/ajax.php?url=' + url; 11 12 // サーバーにアップしたajax.phpに、上記URLを投げて記事を取得 13 $.ajax({ 14 type: "GET", 15 url: resultUrl, 16 dataType: "xml", 17 crossDomain: true, 18 success: function(res){ 19 $(res).find('item').each(function(){ 20 var title = $(this).find('title').text(); // 記事タイトルを取得 21 console.log(title); // コンソール画面に記事タイトル一覧を出力 22 }) 23 }}); 24

PHP

1<?php 2 3 /// Access-Control-Allow-Originエラーを回避する 4 header("Access-Control-Allow-Origin: *"); 5 6 7 if (isset($_GET["url"]) && preg_match("/^https?:/",$_GET["url"])){ 8 echo file_get_contents($_GET["url"]); 9 } else { 10 echo "error"; 11 } 12 13?>

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/02/17 04:27

> JavaScriptでGoogleのニュース記事を取得しようとしています。 が、個人的興味の範疇を超えないことをお祈り申し上げます。
guest

回答1

0

半角空白をURLエンコードすればいいじゃない。%20

php

1 var url = url1 + encodeURIComponent(keyword) + url2; 2 url = encodeURIComponent(url); // URLエンコード

投稿2020/02/17 04:28

編集2020/02/17 04:32
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問