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

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

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

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

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

2回答

5042閲覧

正規表現で特定のdivの中身を読み込みたい

Chelsea_10

総合スコア46

PHP

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

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

1クリップ

投稿2016/06/01 02:37

編集2016/06/01 03:56

お世話になります。
掲題の件ですが、下記のコードで、下記URLのようなところへアクセスし、正規表現で特定のdivの中身(今回でいうと、ランクキングの順位の部分)を$matchesに格納したいのですが、

var_dumpの結果
array(2) { [0]=> array(0) { } [1]=> array(0) { } }
となってしまっています。。。

申し訳ございませんが、ご教授いただけないでしょうか。
何卒宜しくお願い申し上げます(_ _)

googlePlayアプリ例

php

1<?php 2 //アンドロイド 3 $file = file_get_contents("https://play.google.com/store/apps/details?id=jp.ne.sakura.ccice.norikae&hl=ja"); 4 5 preg_match_all( '/<div class="score">(.*?)<\/div>/is', $file, $matches); 6 7 var_dump($matches); 8?>

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

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

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

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

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

guest

回答2

0

php

1 $file = file_get_contents("https://play.google.com/store/apps/details?id=jp.ne.sakura.ccice.norikae&hl=ja");

で取得されているサイトのHTMLソースを見てみましたが、<div class="score">という記載は存在しませんでした(2016/06/01 13:30現在)。
<div class="score" aria-label="5つ星のうち4.5つ星で評価しました">ならありましたが……。

そのため、var_dumpの結果は正しいです。
PHPのコードの書き方や正規表現の問題ではなく、そもそも「取得したいもの」の指定自体に誤りがあるのではないでしょうか?

投稿2016/06/01 04:34

nak

総合スコア696

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

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

Chelsea_10

2016/06/01 06:39

なるほど、確かに抜けてました。 ありがとうございます!
guest

0

ベストアンサー

file_get_contentsが正しく取得できていると仮定して。

ページのソースを見てみると該当する部分は次のような感じでした。

<div class="score" aria-label="5つ星のうち4.5つ星で評価しました">

つまり<div class="score">ではないですね。
次のようにすることで多少は改善すると思いますが、微調整はお願いします。

PHP

1preg_match_all( '/<div class="score"(.*?)<\/div>/is', $file, $matches);

投稿2016/06/01 04:32

ttyp03

総合スコア16998

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

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

Chelsea_10

2016/06/01 06:39 編集

微調整し、こちらでうまくいきました!! ありがとうございました! preg_match_all( '/<div class="score"(.*?)><\/div>/is', $file, $matches); echo $matches[0][0] // 4.5
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問