1

对于一个类项目,我们应该从另一个网站提取数据。我从 GiantBomb.com 选择了类似于给定游戏的拉动游戏(在我的脚本中为它们提供了学分)

// $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;

现在,它将正确返回结果。我的代码有什么问题?我尝试urlencode()在整个链接上执行,而不仅仅是 $gameLink 变量,但它仍然失败。有没有人有什么建议?

4

2 回答 2

5

您只需要对嵌入在 html 中的链接进行 urlencode。不要对传递给 file_get_contents() 的链接进行 urlencode。

于 2012-04-17T22:16:02.307 回答
0

我认为这是因为 urlencode() 对除 -_ 之外的所有非字母数字字符进行编码。

这意味着您的正斜杠被编码为 %2F,这不是您想要的;) 但是,正如 hegemon 上面提到的,不要对传递给 file_get_contents() 的链接进行 urlencode。

于 2012-04-17T22:21:46.507 回答