2012-04-17 11 views
1

クラスプロジェクトでは、別のWebサイトからデータを取得することになっています。私はGiantBomb.comから与えられた試合に似た引っ張りゲームを選んだ(私の脚本で彼らにクレジットが与えられた)PHPのfile_get_contentsが動作しない

// $gameLink = "/call-of-duty-black-ops/61-26423/"; 
$html = file_get_contents("http://www.giantbomb.com" . urlencode($gameLink) . "games_similar/"); 
echo $html; 

これは何も返されない。

$ gameLinkが手動で入力された場合は、:

$html = file_get_contents("http://www.giantbomb.com/call-of-duty-black-ops/61-26423/games_similar/"); 
echo $html; 

を今、それが適切に結果を返します。私のコードに何が問題なのですか?私は$ gameLink変数だけでなくリンク全体でurlencode()を実行しようとしましたが、それでも失敗します。誰にも何か提案はありますか?

+0

...これは 'urlencode()'の目的ではありません... –

+0

@Sunny、クラスに関連する質問には '宿題 'と必ずタグを付けてください。 – 0b10011

+0

@bfrohs ..ちょうどそれを変更しました。知らせてくれてありがとうございます。 – Sunny

答えて

5

あなたはhtmlに埋め込まれたリンクをurlencodeする必要があります。 file_get_contents()に渡されたリンクをurlencodeしないでください。

+0

うわー、それは私の馬鹿だった。それは今すぐうまくいきます。ありがとうございました! :) – Sunny

0

これは、urlencode()が-_以外のすべての英数字以外の文字をエンコードしているためです。

これは、フォワードスラッシュが%2Fにエンコードされていることを意味します。しかし、hegemonは上記のように、file_get_contents()に渡されたリンクをurlencodeしないでください。