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

海外サイトの株価チャートを自分の運営するサイトに表示させたいのですが、どうすればよいでしょうか?http://www.moneybox.jp/investment/market/cme.php こちらのサイトのシカゴ日経先物のチャートを表示したいと思っています。こちらのサイトでhttp://www.w-stock.biz/ phpで読み込んで表示させていただのですが、本日から表示できなくなってしまいました。別の方法で表示できないかご教示頂ければ幸いです。

●質問者: idetuyo
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP サイト シカゴ チャート 先物
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● airlike
●34ポイント

PHPに表示していた方法がわからないので、

何故表示されなくなったのかわかりませんが

相手ページのURLを表示したいなら、

(1)file_get_contents()を使う

http://midilin.sakura.ne.jp/midilin/php/ppblog/index.php?UID=1294904550

(2)get_contentsを使う

http://midilin.sakura.ne.jp/midilin/php/ppblog/index.php?UID=1220950218

(3)curlを使う

http://midilin.sakura.ne.jp/midilin/php/ppblog/index.php?UID=1221625722

これのどれかでいけないでしょうか?

◎質問者からの返答

ありがとうございます。こういうプログラムで表示させておりました。

わかる方にやっていただいたのですが、今は連絡がとれず、自力では到底わからず困っています^^;

$type = 'Content-type: image/png'; //画像データのMIME-type

$host = 'charts.quote.com'; //目的のホスト

$path = '/ifs/ifs?cont=NKD+1%21&period=V&varminutes=5&size=560x384&bartype=CANDLE&bardensity=high&headerbackground=9,50,165&headerforeground=255,255,255&headerdatacolor=255,255,255&studyheaderbackground=9,50,165&random=7595'; //目的のパス

$fp = fsockopen($host, 80, $errno, $errstr, 30);

if (! $fp) {

echo "$errstr ($errno)
\n";

} else {

$out = "GET $path HTTP/1.1\r\n";

$out .= "Host: $host\r\n";

$out .= "User-Agent: Mozilla/5.0\r\n";

$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);

//HTTPヘッダを読み飛ばす

while (! feof($fp)) {

$headers = fgets($fp, 8192);

if (trim($headers) == '') {

break;

}

}

//画像を読み込む(chunked形式)

$img = '';

while (! feof($fp)) {

$ss = fgets($fp);

$cnt = intval($ss, 16);

while ($cnt > 0) {

$bb = fread($fp, $cnt);

$cnt -= strlen($bb);

$img .= $bb;

}

fread($fp, 2); //\r\nをスキップ

}

fclose($fp);

header($type) ;

echo $img;

}

?>


2 ● airlike
●33ポイント

fsockopenがうまくいっているかどうかを

まず調べる必要がありますね。

エラーは何か出ていますか?

エラーが出ていなければ、

echo "あ";

$fp = fsockopen($host, 80, $errno, $errstr, 30);

echo "い";

if (! $fp) {

echo "う";

echo "$errstr ($errno)

\n";

} else {

echo "え";

とecho文を入れると

「あ」「あい」「あいう」「あいえ」のどれが画面に出力されるでしょうか?

1つずつ、echo文入れて、どこで落ちているかをまず調べたほうがよいと思います。

もし、「あいえ」となっていれば、fsockopenが有効だと思います。

それ以外なら、fsockopenが無効になっている可能性があるので

先ほど記した、URLの3つを参考にしてみると良いかと思います。


あとは試しに、URLの部分をyahooとかのURLを入れると

yahooの内容を表示できますか?

yahooの表示ができれば、fsockopenは有効で、

シカゴ日経先物のチャートの方で、拒否されているのかもしれません。

◎質問者からの返答

こんなエラーが出ています^^;

Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /virtual/fxjpy/public_html/chart.moneytokyo.com/cmechart_v.php on line 6

Warning: fsockopen() [function.fsockopen]: unable to connect to charts.quote.com:80 (Unknown error) in /virtual/fxjpy/public_html/chart.moneytokyo.com/cmechart_v.php on line 6

(100)


3 ● airlike
●33ポイント ベストアンサー

やっぱり、fsockopenでこけていますね。

エラー内容

「 php_network_getaddresses: getaddrinfo failed: Name or service not known in 」

で調べると、

http://d.hatena.ne.jp/red_snow/20090721/1248152882

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1223309312

「Name or service not known in 」で調べると

http://komputilo.blogspot.com/2011/02/lighttpdname-or-service-not-known_23.html

http://listserv.linux.or.jp/pipermail/linux-users/2010-August/000091.html

あたりが参考になりますかね。

(1つの回答につけられるのが1人3つまでという仕様があるようなので

これが最後の回答となります)

◎質問者からの返答

ありがとうございます。再びこの質問を立てたいと思うので、引き続き返答にご協力頂けますと嬉しいです。ご紹介頂いたURLで解決できるのでしょうか?これは運用しているレンタルサーバーの問題なのか、チャート提供している会社側の対応なのか?それとも別の原因なのか?プログラムを書き換えれば表示できるものなのか?ご教授頂けたらと思います。

関連質問


●質問をもっと探す●



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