2011-07-08 10 views
1

イムを阻止しました。私は方法 "file_get_contents"と他の置換に問題があります。のfile_get_contentsとカールが動作しない、スプリンガーAPIからJSONデータを解析しますJoomlaのモジュールを記述しようとしているTCPポート問題

Warning: file_get_contents(http://www.example.com) [function.file-get-contents]: failed to open stream: A socket operation was attempted to an unreachable network. in C:\wamp\www\modules\mod_springer\mod_springer.php on line 72

いくつか検索した後、私はそれが原因で私の会社のファイアウォールのものであってもよいことが分かった:私の問題は、ということです。別の方法を使用して、または別の方法を使用してポートimを変更するようなこの問題を克服する方法はありますか?

注:allow_url_fopenを有効になっています。私はwampを使っています。事前に

おかげで、

イスマイル

+0

インターネットに接続するためにプロキシを使用していますか? – Gedrox

+0

あなたの警告や 'api.springer.com'のようにxxx.comを本当に使いましたか?あなたは、元を使用した場合は、よく、チャンスはこのサイトは多分あなたの会社^^ –

+0

@Gedroxそれらが提供するキーでapi.springer.com使用していない、イムプロキシ を使用していない@jurgenなし、IMによってブラックリストに載っていることです:) – ismailkuyu

答えて

2

あなたは権力-それは-こと、あなたが接続したい先のリモートAPIにファイアウォールを介してアクセスできるようにを説得できるかどうかあなたが立ち往生していませんよ。正当な理由があり、狭い範囲(特定のIPとポート)でファイアウォールのアクセスをプロビジョニングできる限り、なぜこのアクセスを取得するのが問題になるのかわかりません。

+0

は、彼らはポート25のブロックを解除することはできませんが、私は他のポートを使用してこの問題を解決するチャンスを持っている場合、彼らは私が推測するように厳密ではないだろうと述べました。 file_get_contentsを他のポートと連携させることはできますか? – ismailkuyu

+1

@Ismail:URLに「http://example.com:XXX/...」と入力します。XXXはポート番号です。 –

+2

ポート25はHTTPリクエストに使用しないでください。これはSMTPのためにする必要があります。あなたはその権利を持っていると確信していますか? –

1

それは(多分)のように扱うカールプロキシの問題を克服することが可能である:

curl_setopt($ch, CURLOPT_PROXY, "http://xxx.xxx.xxx.xxx:8080"); 
curl_setopt($ch, CURLOPT_PROXYPORT, 8080); 
curl_setopt ($ch, CURLOPT_PROXYUSERPWD, "xxx:xxx"); 

それだけでブロックされたポートであるか、場合場合、これは、あなたが持っている権限のようないくつかのことに依存するであろうアクセス制御です。

私はこれがあなたに役立つことを願っています。

+0

あなたの努力に感謝しますが、依然として仕事がありません。応答は「偽」です。 – ismailkuyu

+0

私はポート25を直接使用していませんでしたが、実際にはコード内のポートを指していませんでした。 ITスタッフは、私は80808080を使用することができると述べた。コードの下ではまだ動作していません。助言がありますか? '$ json_feed_url = 'http://api.springer.com:80/metadata/json?q =アビオニクス&api_key = xxxxxxxxxxxxxxxx'; $ ch = curl_init(); curl_setopt($ ch、CURLOPT_HEADER、false); curl_setopt($ ch、CURLOPT_PROXY、$ json_feed_url); curl_setopt($ ch、CURLOPT_PROXYPORT、80); curl_setopt($ ch、CURLOPT_PROXYUSERPWD、 "xxx:xxx"); curl_setopt($ ch、CURLOPT_RETURNTRANSFER、true); $ json = curl_exec($ ch); curl_close($ ch); $ arr = json_decode($ json); var_dump($ arr); ' – ismailkuyu

+0

$ json_feed_urlのURL文字列からポート指定を削除しようとしましたか?あなたはtrueとfalseの代わりにcurlに0と1の値を使ってみることもできますが、私は100%確信していませんが、これは私のために働いていた時に見つけました – Ryan

関連する問題