php コマンド file_get_contents

ゲームを作るのに、iアプリなど機種側だけでなく、サーバー側のプログラムも必須。

サーバー側プログラムは、使い勝手が良いPHPをずっと使っている。
JSPとかでも良いんだけど、コンパイルが必要だとか、レンタルサーバーでは使えないとか、イマイチ使いにくい。

といいつつ、PHPはしばらく離れていたので、すぐに思い出せない&環境が変わっているので、設定が大変だった。

とりあえず、自鯖を立て、PHPが動くようにするまでは(これまで何度もやっているので)、すぐに出来たが、一部のプログラムが動かない。

file_get_contents

どうやらこの命令が上手く行っていないらしく、タイムアウトになっている。
googleで検索してみると、たくさんヒットするのだが、ほとんどが
「php.iniの設定で、タイムアウト時間を長くする」という解決方法。

そんな原因ではないことくらいは、すぐに分かる。
接続先は外部URLで、http://~ ではじまるのだが、取得できるところもある。
通信が遅くて タイムアウトというわけではない。


もちろん php.iniの設定なんて変えているが、 60秒にしているにもかかわらず、接続先のサーバーで30秒で切られているのだ。

待てよ、相手のサーバー?
ということは、こちら側のみの設定ではなく、相手に影響を与える設定ということだ。

というわけで、行き着いた解決方法が、 agent の設定。
デフォルトの設定で、 user_agent="" なのだが、
これを "php"にしてやったら、接続できた。


今まで接続できていたサーバーは、セキュリティに微妙な問題があるってことだな…。
[PR]
by miries | 2009-11-08 22:22 | ゲームを作る


<< ヤマダ電機と修理。 マーブルコートのフライパン >>