• 締切済み

PHPで外部サイトの一部を取得して表示

こんにちは。 普通、外部ファイルの内容を取得して表示する場合、次のようにしますよね。 <?php echo file_get_contents("***URL***"); ?> それで、そのページの一部分、 例えば<div id="text">~</div>の内容を取得して、 file_get_contentsと同じように表示する方法はありますでしょうか。 取得する範囲はIDで指定できればと思います。 よろしくお願いします。

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

みんなの回答

  • foreach
  • ベストアンサー率51% (43/84)
回答No.1

いくつか方法がありますがxpathを使うと良いと思います。

参考URL:
http://logic.moo.jp/memo.php/archive/723

関連するQ&A

  • htmlの一部を読み込んで表示する。

    下の階層に有る自分のページをトップのindex.phpページに表示したいです。 《./abc/123.html》 ▼<div id="news">■~●</div>▲ 現在は123.htmlで指定した範囲を通り過ぎて▲の部分まで表示してしまいます。 ■~●だけを表示するにはどうしたらよいでしょうか? 今は下記のように書いています。 <?php $str = file_get_contents('./abc/123.html'); if (preg_match('!<div id="news">\s*(.*)</div>!s', $str, $res)){ print $res[1]; } ?> ご指導よろしくお願い致します。

    • 締切済み
    • PHP
  • PHPで外部サイトの内容を取得する方法

    いまPHPをやっているのですが。外部サイトのソースを文字列で取得する方法はあるのでしょうか? (例えばwikipediaの内容を文字列で取得して echo で表示させたい) wikipediaの内容はソースを見れればいいだろうと思ったからです。 fopenでURLを入れれると書いていたのでしてみたのですがタイムアウトしてうまくいきません。 なので例としてwikipediaのページのソースを取得しechoで表示させるプログラムを教えていただけませんでしょうか?。よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPでWebページの特定部を取得したいのですが、上手くいきません。

    PHPでWebページの特定部を取得したいのですが、上手くいきません。 現在file_get_contentsを用いてURLを指定して取得し、preg_matchの引数にする方法で行っています。 また、preg_matchは以下のように用いています。 preg_match("/パターン(.*?)パターン/s", $html, $matches); print_rで$matchesを表示してみたところArray()のみ出力されます。 また、話が逸れて申し訳ないですが、上記とは別にfile_get_contentsを用いて動的にURLを指定して取得しているのですが、処理に時間がかかります。(約10秒) $wordをURLに組み込む変数として以下のように記述しています。 file_get_contents("http://…".$word."…(URLの続き)"); 以上の2点についてご教示願います。

    • ベストアンサー
    • PHP
  • PHP外部の変数を保持して足し算する方法

    PHP初心者です。 今、診断テストをPHPで作っているのですが、 外部ファイルから受けとった変数を保持している方法が分かりません。。 質問が5問あるので、それぞれ5つのshitumon1.php~shitsumon5.phpがあります。 ■shitsumon1.php ------ $no = $_GET["no"]; $counts = $_GET["counts"]; $countssub = $_GET["countssub"]; $question = "質問文1"; $answer1 = "答えの選択肢1"; $answer2 = "答えの選択肢2"; $answer3 = "答えの選択肢3"; //(↓どこの選択肢を押したかによって、countssubに点数を加算していく) if($no == 1){ $countssub = $countssub + $counts; }else if($no == 2){ $countssub = $countssub + $counts; }else{ $countssub = $countssub + $counts; } ?> <center> <div id="main_contentsbox"> <h1>診断テスト</h1> <div id="contents_bak"> <div class="text_catch"><? echo $question; ?></div> <ul> <li id="list1"><a href='shindan2.php?no=1&counts=100&countssub='><?php echo $answer1 ?></a></li> <li id="list2"><a href='shindan2.php?no=2&counts=200&countssub='><?php echo $answer2 ?></a></li> <li id="list3"><a href='shindan2.php?no=3&counts=300&countssub='><?php echo $answer3 ?></a></li> </ul> </div> </div> </center> ----- ■shitsumon2.php ------ $no = $_GET["no"]; $counts = $_GET["counts"]; $countssub = $_GET["countssub"]; $question = "質問文2"; $answer1 = "答えの選択肢1"; $answer2 = "答えの選択肢2"; $answer3 = "答えの選択肢3"; //(↓どこの選択肢を押したかによって、countssubに点数を加算していく) if($no == 1){ $countssub = $countssub + $counts; }else if($no == 2){ $countssub = $countssub + $counts; }else{ $countssub = $countssub + $counts; } ?> <center> <div id="main_contentsbox"> <h1>診断テスト</h1> <div id="contents_bak"> <div class="text_catch"><? echo $question; ?></div> <ul> <li id="list1"><a href='shindan2.php?no=1&counts=100&countssub='><?php echo $answer1 ?></a></li> <li id="list2"><a href='shindan2.php?no=2&counts=200&countssub='><?php echo $answer2 ?></a></li> <li id="list3"><a href='shindan2.php?no=3&counts=300&countssub='><?php echo $answer3 ?></a></li> </ul> </div> </div> </center> ----- 本当はcountssubにどんどんポイントが加算されていきたいので、 質問1と質問2、両方選択肢1を選んだ場合は、 100+100で200の結果をcountssubに入れたいのですが、 なんだか上書きされているようで、どんどんポイントを加算していくことが出来ません、 どうやったら、違うファイルで受け取った変数を保存していくことが出来るのか ご教授ください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • javascriptを起動した後のウェブページを取得するには

    こんにちは。よろしくお願いいたします。 以下のようなHTMLソースをブラウザで読み込むとhogeと 表示されますが、PHPのfile_get_contentsやPerlのLWPなどを使って ページを取得するとソースそのものが取得されます。PHPやPerlを使って ブラウザから見たソース(以下の例ではhoge)を取得するには どのようにしたらよいのでしょうか? <script type="text/javascript"> window.onload=function (){ document.getElementById("a").innerHTML="hoge"; } </script> <div id="a"></div>

    • ベストアンサー
    • PHP
  • UTF-8サイトを取得しSJISに

    以下のPHPで指定のサイトを取得すると文字化けしてしまいます。 何処が悪いのか分かる方、ご指導お願い致します。 <?php $str = file_get_contents('http://esthe-cinderellaesthe.on.omisenomikata.jp/diary'); mb_convert_encoding($str,"SJIS","UTF-8"); if (preg_match('!<div id="content">(.*?)<div class="pr">!s', $str, $res)){ print $res[1]; } ?>

    • ベストアンサー
    • PHP
  • php 外部ファイルについて

    php初心者です。 テキスト表示でランダムリンクをしたいのですが リンク先のURLとテキストを外部ファイルにしたいのです。 現在------------------------ <?php srand((double)microtime()*1000000); $ad_list1 = file("20.txt"); $ad_key1 = array_rand($ad_list1, 2); $ad1 = $ad_list1[$ad_key1[0]]; // 表示 echo "ID=$ad1"; ?> ----------------------------- ↑このphpソースを組み入れ、外部ファイル20.txtには ----------------------------- <a href="http://domain.jp/?id=111">111</a> <a href="http://domain.jp/?id=222">222</a> <a href="http://domain.jp/?id=333">333</a> ・ ・ ------------------------------ という感じでリンク先URLを1行ずつ書いています。 テキスト表示は ID=111 という感じで表示されるようにはなったのですが phpソースの中に http://domain.jp/? までを組み込んで、外部ファイルの内容を ------------------------------ 111 222 333 ・ ・ ------------------------------ とするだけで、 表示される ID=111をクリックすると http://domain.jp/?111 のページが表示されるようにするには どうすれば良いのでしょうか。 また、そういった事は可能でしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • サイト名を取得するPHP

    url.txtに http://test1.com http://test2.com http://test3.com : とあります。このURLのhtmlファイルから<title>サイト名</title>部分を抜き出し、 http://test1.com+サイト名1 http://test2.com+サイト名2 http://test3.com+サイト名3 : と表示したいです。 <?php /** * ページタイトルを取得する関数 */ function getPageTitle( $url ) { $html = file_get_contents($url); //(1) $html = mb_convert_encoding($html, mb_internal_encoding(), "auto" ); //(2) if ( preg_match( "/<title>(.*?)<\/title>/i", $html, $matches) ) { //(3) return $matches[1]; } else { return false; } } $filename="url.txt"; $data=file_get_contents($filename); $array = split("\n",$data); foreach($array as $values){ echo $array."+".getPageTitle($array); } ?> ですがこのコードだと7行目あたりでエラーが出てしまいます。 どなたか解決策をご教示ください。どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPのタイトルの取得

    こちら(http://wsd.zombie.jp/gw/php_curl_file_get_contents/)のページとこちら(https://www.php.net/manual/ja/funct ion.file-get-contents.php)のページを参考に別ページからタイトルを取得したいと思っているのですが、できませんでした。(上記のサイト様では、ヤフーニュースの取得ができるらしいのですが、表示されませんでした。) webページのタイトルを取得したいです。 index.phpファイル <a href>="ここに下記タイトルを取得"</a> ーサーバー上の別ページー page1.php <title>練習</title> このようにしたいので教えてください。

    • ベストアンサー
    • PHP
  • 外部ファイルから$a=1等の変数を読み込みたい

    <html> <body> <?php $contents = @file_get_contents('count.php'); echo $contents; ?> <span id="ck0001"><?php echo $count[ck0001] ; ?></span><br> <span id="ck0002"><?php echo $count[ck0002] ; ?></span><br> </body> </html> --------------------- count.txtの内容 $count[ck0001] = 4; $count[ck0002] = 3; こんな感じでここの値から引っ張ってきたいのですが、方法がわかりません。 備考:PHP触り始めてから今日で二日目です。

    • ベストアンサー
    • PHP

専門家に質問してみよう