人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

金相場の自動取得を行い演算後HTMLで出力したいのですが下記のソースでおかしな部分を教えてください。
今まで利用できていたのですが、最近できなくなりましました。
なお、取得元が2箇所あるのですが、どちらからでもかまいません。取得できる方からと考えています。
\<?php
$URL = 'http://www.olympic-gold.co.jp/';
$html = '';
$fp = fopen($URL, 'r') or die("fopen");
while (!feof($fp)) {
$html = fread($fp, 60000);
}
fclose($fp);

preg_match('|K24</td>
<td class="count_up" width="25%">(.*?)</td>|', $html, $matches);
$k24 = strtr($matches[1], array("," => "")) * 0.85;

echo round("$k24");
?>

\<?php
$URL = 'http://www.net-japan.co.jp/';
$html = '';
$fp = fopen($URL, 'r') or die("fopen");
while (!feof($fp)) {
$html .= fread($fp, 1024);
}
fclose($fp);

preg_match('|K18</td>
<td width="30%" align="right" bgcolor="#E6E6E6">(.*?)&nbsp;</td>|', $html, $matches);
$k18 = strtr($matches[1], array("," => "")) * 0.85;

echo round("$k18");
?>

●質問者: birdtail
●カテゴリ:ウェブ制作
✍キーワード:echo FP HTML PHP URL
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● どたん
●200ポイント ベストアンサー

計算式の意図が分からなかったのですが、「スクラップ買取価格」のK24の価格を0.85倍すればよろしいのでしょうか?

下記のようにしてみてください。


<?php
$URL = 'http://www.olympic-gold.co.jp/';
$html = file_get_contents($URL);
if ($html == FALSE) {
 echo "error: {$URL} not found.";
 exit(1);
}
$ret = preg_match("/K24<\/td>[^<]+<td[^\>]+>([0-9\,]+)<\/td>/ms", $html, $matches);
if ($ret == 0) {
 echo "error: K24 price not found.";
 exit(1);
}
$k24 = preg_replace("/,/", "", $matches[1]) * 0.85;
echo round($k24);
?>
◎質問者からの返答

ありがとうございます。

K24は取得できたのですが、K18の項目が二つあり後者の方を取得するにはどうすればよろしいでしょうか?


2 ● a-kuma3
●50ポイント

「今まで利用できていた」ときと、HTML の内容が変わったのだと思います。

回答を書いている時点では、K24 は、

<td class="metal_k" width="25%">K24</td>
<td class="count_up" width="25%">3,961</td>

K18 は、

<td class="metal_k">K18</td>
<td class="count_up">3,017</td>

という表記になってます。

元のソースは、特に K18 の方が色の指定や &nbsp; が数値の後に入っていることを

前提にしているので、今のページ内容から値が取得できていません。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ