PHPでHTMLソースを取得する方法とは?

このQ&Aのポイント
  • PHPでHTMLソースを取得する方法について教えてください。
  • 複数のHTMLソースから特定のタグを取得し、URLをソートして表示する方法について教えてください。
  • PHPを使用して複数のHTMLソースから<data>タグを取得し、URLをソートして表示する方法を教えてください。
回答を見る
  • ベストアンサー

PHPでHTMLソースを取得する方法はありますか?

PHPでHTMLソースを取得する方法はありますか? RSSで複数のHTMLソースを取得しました。 以下のことをやりたいのですが、こういったことは可能でしょうか? ・複数のHTMLソースを取得する(同じサイトからなのでタグの種類も大体同じものです) ・その中から<data>タグを取得する(dataの中にはそれぞれ適当な数字が入っています) ・それをソートして、ソート順にURLを表示する。 このようなことは可能でしょうか? $RSS=RSSのURL(XML) foreach($RSS as $value){ $URL[]=$value->URL; } for ($i = 0, $n = count($URL); $i < $n; $i++) { echo $URL[$i] . "<br />"; } これでそれぞれのURLが URL1 URL2 URL3 とそれぞれ表示されます。これらのURLからそれぞれの<data>タグを取得して上のようなことをやりたいです。 説明が下手で申し訳ありませんが、よろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • 1minn
  • ベストアンサー率57% (52/90)
回答No.1

file()とかでURLでソース取れるので $data = array(); for(URLの数) {   $source = file("URL");   if ( !is_array($source) || count($source) == 0 ) {     continue;   }      foreach ( $source as $value ) {     if ( $valueにdataタグがあったら ) {       $data[] = 'タグの中身';     }   } } こんなイメージでしょうか?

関連するQ&A

  • PHPで配列を使ってHTMLソースを取得したいです

    RSSで取得したXMLの中身からURLを取得したのですが、 それぞれのソースをループ構文を使って取得する方法はありますか? XMLの中身を配列として表示すると ソース↓ $RSS_data = simplexml_load_file($RSS_url); $i=0; foreach($RSS_data->URL as $value){ $result [$i] ['URL'] = $value->URL; $i++; } echo "<pre>" ; print_r($result) ; echo "</pre>" ; 結果↓ Array ( [0] => Array ( [URL] => SimpleXMLElement Object ( [0] => http://www.~ ) ) [1] => Array ( [URL] => SimpleXMLElement Object ( [0] => http://www~ ) ) [2] => Array ( [URL] => SimpleXMLElement Object ( [0] => http://www.~ ) ) [3] => Array ( [URL] => SimpleXMLElement Object ( [0] => http://www.~ ) ) こんな感じで続いていきます。 このURLの一つ一つのソースを取得したいのですがどうすればいいのでしょうか?

    • 締切済み
    • PHP
  • xmlからphpで出力したデータをソートするアンカーを設けたい

    phpを使用し、WEBサービスで情報を取得して、foreachでデータを表示しています。 表示したデータについて、たとえばアマゾンのWEBサービスであれば、「価格でソート」、という文言をいれ、 それをクリックすると、ソートされる、という風にしたいと思っています。 <?php $url = "http://~~~~~~"; $params = "?~~~~~ $data = file_get_contents($url . $params); $data = str_replace(~~~,~~~, $data); $xml = simplexml_load_string($data); foreach ($xml->AAA as $aaa) { echo $aaa->ABC . "<br>"; echo $aaa->BBB->Price . "<br>"; } ?> というソースですが、「Priceでソート」というクリック可能なアンカーを挿入したいとき、どこにどのように書けばいいのでしょうか? asort、array_multisort とかを使えばいい、というところまで調べていますが、行き詰っています。 また、手法としては、 (1)取得したxmlデータを保持して、並べ替えるだけ (2)前述のソースを再利用し、再度xmlを取得しなおし、ただしそのときにソートの条件を付け加える のどちらかになるのでしょうか。

    • 締切済み
    • PHP
  • PHP URL→HTML→取得→RSS出力

    PHP URL指定→HTMLソース→指定タグ要素取得(複数)→RSS(.xml)出力について URLからHTMLソースを取得し、要素を取得しRSSファイルを作りたいと思っています。 例えば、http://shopping.yahoo.co.jp/ranking/のURLのHTMLソース内から <p class="elPhoto"> <a href="○○○.html"> <img src="【取得したい文字列1】" width="200" height="200" alt="○○○"> </a> </p> <h4 class="elTitle"> <a href="【取得したい文字列2】">【取得したい文字列3】</a> </h4> <h4 class="elPrice"> <span>【取得したい文字列4】</span>円 </h4> <p class="elSellStatus"></p> <h4 class="elStore"> ストア:<a href="【取得したい文字列5】">【取得したい文字列6】</a> </h4> など指定する各要素を全件取得し、 <item> <title>【取得したい文字列3】</title> <link>【取得したい文字列2】</link> <description> 【取得したい文字列1】<br> 【取得したい文字列4】<br> 【取得したい文字列6】<br> 【取得したい文字列5】 </description> </item> などとRSSで全件出力し、xmlファイルを作成したいです。 アドバイス、ご指導お願いします。

    • 締切済み
    • PHP
  • RSS 日付の取得方法

    見てくださった方、こんにちは。 php超初心者のkitakaruと申します。 ホームページを作っていて、 RSSを取得して表示させたいのですが、 それが出来ずにほとほと困っています。 htmlやcssは多少分かるのですが、 phpは全くといっていいほど分かりません。 どなたか詳しい方がいらしゃいましたら、 ご教示頂けますでしょうか。 よろしくお願い致します。 呼び出しているxmlの形式はrss2.0です。 http://i-njoy.net/tips/rss.shtml こちらのサイトを参考に 以下のようソースを書きました。 (1)のpubdateというタグの値を引っ張ってこれず そこで行き詰ってしまっています。 ちなみにタイトルなどはきちんと表示されています。 分かる方、どうぞよろしくお願いします。 <?php require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'http://www.xxxxxxxxxxxxx/index.xml?mode=rss'; $rss = fetch_rss($url); $title = $rss->channel['title']; $date1 = htmlspecialchars($item['pubdate']);  //(1)rss 出力日時を取得して 変数data1に代入 $date2 = date("Y.m.d", strtotime($date1));   //(2)表示形式変換 data1を変換したものを変数data2に代入 //JcodeConvert($str, $from, $to) //0:PASS(無変換)1:EUC-JP 2:Shift_JIS 3:ISO-2022-JP(JIS) 4:UTF-8 $title = JcodeConvert($title, 4, 4); foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 4); $url = $item[link]; echo '<li><dl><dt>'.$date1.'</dt><dd><a href="'.$url.'">'.$title.'</a></dd></dl></li>'; //(3)変数data2を出力 } ?>

    • ベストアンサー
    • PHP
  • PHPについて教えてください。

    $RSS_data = simplexml_load_file($RSS_url); foreach($RSS_data->Items->Item as $value){ $img[] = "<img src=\"{$value->Image->URL}\" width=" 200 " height=" 200 ">"; } for ($i = 0, $n = count($img); $i < $n; $i++) { if (($i / 6) == 1) { echo $img[$i] . "<br />"; } else { echo $img[$i]; } } 上記の文でパースエラーがでました。エラーのラインは $img[] = "<img src=\"{$value->SmallImage->URL}\" width=" 200 " height=" 200 ">"; です。 width=" 200 " height=" 200 "  これを取るとエラーがでずに通ります。画像のサイズを指定したいのですが、このやり方駄目ならどうすればいいのでしょうか? あと、やりたいことは画像を7つ表示したら改行して、また下に画像を7つ並べることを繰り返す。 というようにしたいのですが、このやり方だと1列目は7つでちゃんと改行されるのですが、2列めからは改行されずに画像が並んでしまいます。 どうすればいいでしょうか?どちらかだけでもいいのでわかる方教えてください。 お願いします。

    • ベストアンサー
    • PHP
  • VBSでHTMLソースの取得方法で

    VBScriptでBODY部のHTMLソースを取得したいのですが出来ない場合があって悩んでいます。 msgbox objIE.Document.Body.InnerTextというかたちで表示させています。 ほとんどのページで問題なく出来るのですが・・・・ フレームで出来ているページに関して取得が出来ません。 そういった場合どうすればよいのでしょうか? 極論を言えば指定HTMLソースの中に文字検索が出来れば問題はないのですがソースが取得できないので検索しようがありません。

  • phpのHTMLからのRSS linkタグ抽出

    こんにちは phpを使ってrssを配信している サイトのhtmlデータを取得し、 rssのリンクが書いてある<link>タグを抽出しようとしています。 preg_matchなどを使った抽出の時に使っている正規表現は一応、 |.*<link rel=[\"\']alternate[\"\'](.*rss.*xml.*)?>|s なのですが、上記のrss xmlという文字列の順序や、 rssのバージョンを考えずに取得できる方法、 タグ内の他の属性値、属性値の順序など、 人によって書き方が異なり、 取得が難しいです。 これ以外の、より簡単な取得方法や、抽出におけるよい正規表現を知っておられる方、 どうか抽出方法を教えていただけませんでしょうか?

  • HTMLソースのタグの貼り付け方

    初心者のため要領を得ないかもしれませんが、 最近購入したソースネクストのホームページZEROを使用しているのですが、ASPより取得したHTMLソースをコピーしたタグは、どこにどのようにして貼り付ければ良いのでしょうか? 通常モードのところで良いのでしょうか? テキストボックスを配置してその中に張り付けるのでしょうか? それとも画像を挿入してそれと入れ替えるのでしょうか? ページをアップしてインターネット上からみると、そのタグのままで表示されています。 それともHTMLモードのところでしょうか?となると場所がさっぱりわかりません。 シーサーブログの場合は、自由形式のボックスの中にタグを貼り付けるだけでよかったので、簡単にできたのですが。 ブログとは、どう違うのでしょうか? どうぞよろしくお願いします。

  • proxy経由でfile関数で、HTMLソースを取得するには

    ローカルのマシン(apache2+php5)から proxy経由でURLをfile関数を利用し、HTMLソースを取得するにはどのように プログラムすればいいのでしょうか? proxy経由でなければ <?PHP $lines = file ('http://yahoo.co.jp'); for($i=0;$i<sizeof($lines);$i++){ $lines[$i] = HtmlSpecialChars($lines[$i]); echo "$lines[$i]"; echo "<BR>"; } ?> で正常稼動を確認しました。 上記プログラムをproxy経由で行うにはどのようにすれば よいのでしょうか?

    • ベストアンサー
    • PHP
  • perlでHTMLソースを解析してformタグの要素を取得したいのです

    perlでHTMLソースを解析してformタグの要素を取得したいのですが、そのようなライブラリはありますか? できれば、javascriptでHTMLソースから情報を得られるようなAPIだと良いのですが。 即ち、document.forms[].actionとかdocument.forms[].elements[].valueのように。

    • ベストアンサー
    • Perl

専門家に質問してみよう