外部のテキストファイルを読み込んたい - PHPプロ!Q&A掲示板

2489

  • 0P

外部のテキストファイルを読み込んたい

質問日時 / 2010年1月29日 09:31    回答数 / 3件

Questioner:  juno7777  このエントリーをはてなブックマークに追加 

キーワード / キーワードが設定されていません

サブドメインのサイトにてメインのドメインからテキストファイル(data.cgi)を読み込みたいのですが
エラーが出ます。

下記のような命令ではダメでしょうか?

phpinfoにて"allow_url_fopen"を確認しましたが有効(on)になっています。

-----------------------------
$file = file('http://www.○○○.com/db/data.cgi');
-----------------------------

エラー表示
--------------------------------------------
Warning: file(http://www.○○○.com/db/data.cgi): failed to open stream: HTTP request failed! HTTP/1.1 500 Internal 
--------------------------------------------

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01shimixfile('http://www.○○○.com/db/data.cgi'); という
 ┣A01-1juno7777この意見は質問者によって削除されました。
 ┗A01-2juno7777ご返答ありがとうございます。 サブドメインもメイン
  ┗A01-2-1NurseAngel本筋とは全く関係ない話ですが。 >サブドメイン

回答一覧

並び替え:

A01 満足
answerershimix [1月29日 09:47] (最終編集:1月29日 09:49)

file('http://www.○○○.com/db/data.cgi');

という記述は、data.cgiをテキストファイルとして読み込みません。data.cgiが「実行されてブラウザに返すテキスト」を取得します。file()などで、URLを指定した場合には、ブラウザでそのURLにアクセスして返ってくる内容が取得出来る内容です。

#でないと、CGIのソースでも設定ファイルでも何でも読めてしまうわけで・・

今回のケースだと、500エラーが返っていますから実際の内容はCGIスクリプトではないのでしょうね。http経由で読まれないように拡張子を.cgiにしているだけなのでしょう(それをhttp経由で読もうとするのは無意味としか思えません)。


同一サーバであれば(http経由で読まずに)フルパス指定で読んでください。そもそもhttp経由で無駄な負荷をかけてはいけません。

別サーバであれば、なんらかの方法でテキストファイルとして渡す工夫をdata.cgiを置いているサーバ側でしないといけません(とはいえ簡単に渡してしまうようだとダメダメなんですが・・)。

この意見に回答する

ツリーへ TOPへ

A01-1
replyerjuno7777 [1月29日 10:41]

この意見は質問者によって削除されました。

ツリーへ TOPへ

A01-2
replyerjuno7777 [1月29日 10:49]

ご返答ありがとうございます。
サブドメインもメインも同一サーバーなんですね。
別サーバーという認識でおりました。

無事、問題も解決いたしましたのでご報告いたします。ありがとうございました。

この意見に回答する

ツリーへ TOPへ

A01-2-1
replyerNurseAngel [1月30日 04:38]

本筋とは全く関係ない話ですが。


>サブドメインもメインも同一サーバーなんですね。
>別サーバーという認識でおりました。

サブドメインだから同一サーバとは限りません。
全く同じドメインでも別のサーバであることもあります(DNSラウンドロビンとかLBとか)

逆に全く違うドメインでも実際は同じサーバであることもあります。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)