2012-04-17 4 views
1

Для проекта класса мы должны извлекать данные с другого сайта. Я выбрал вытягивать игры, подобные данной игры от GiantBomb.com (кредиты предоставляются им на моем сценарии)file_get_contents в PHP не работает

// $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, но она по-прежнему терпит неудачу. У кого-нибудь есть предложения?

+0

... Это не то, что 'urlencode()' для ... –

+0

@Sunny, не забудьте пометить вопросы, связанные с классом как 'homework'. – 0b10011

+0

@bfrohs .. Просто изменил его. Спасибо, что дали мне знать. – Sunny

ответ

5

Вам необходимо только ссылки urlencode, встроенные в html. Не переназначайте ссылки urlencode на file_get_contents().

+0

Ничего себе, что было глупо от меня. Отлично, теперь это работает. Спасибо! :) – Sunny

0

Я предполагаю, что это связано с тем, что urlencode() кодирует все не буквенно-цифровые символы, кроме -_.

Это означает, что ваши косые черты кодов будут закодированы в% 2F, а это не то, что вы хотите;) Однако, как упоминал выше гегемон, не связывайте ссылки urlencode с файлом_get_contents().