не может использовать file_get_contents из созданной дианмически локации - PullRequest
2 голосов
/ 28 января 2010

Я пытаюсь использовать file_get_contents (), чтобы получить HTML со страницы.
следующее прекрасно работает: file_get_contents('http://www.mypage.com?Title=Title'), но следующее вызывает ошибку:

$Title = 'Title';
file_get_contents("http://www.mypage.com?Title=$Title")

Ошибка:

Bad Request

Your browser sent a request that this server could not understand.
The request line contained invalid characters following the protocol string.

Apache/1.3.41 Server at eiit.org Port 80

Кто-нибудь знает почему?

Ответы [ 4 ]

2 голосов
/ 28 января 2010

Вы используете строку с одинарными кавычками; и нет переменной интерполяции с одинарными кавычками.

Это означает, что URL, который вы пытаетесь получить, равен http://www.mypage.com?Title=$Title, а не http://www.mypage.com?Title=Title.

Вы должны использовать строку в двойных кавычках, чтобы иметь переменную интерполяцию:

$Title = 'Title';
file_get_contents("http://www.mypage.com?Title=$Title");


Если это все еще не работает:

  • Проверьте, в порядке ли ваш URL: вместо прямой передачи его на file_get_contents, сохраните его в переменной и отобразите его - просто чтобы убедиться, что он правильный.
  • Почему в вашем URL нет имени страницы?
  • Возможно, вам придется urlencode значения, которые вы передаете в качестве параметров в URL.
1 голос
/ 28 января 2010

Переменные внутри одинарных кавычек не интерполируются; попробуй:

$Title = 'Title';
file_get_contents("http://www.mypage.com?Title=$Title")
0 голосов
/ 28 января 2010

если я не сделаю, если вы решили свою проблему, но вы можете попробовать и другой способ. (хотя я не думаю, что это имеет значение)

$Title = 'Title';
$result=file_get_contents("http://www.mypage.com?Title=".$Title)
0 голосов
/ 28 января 2010

Вы пробовали http://www.mypage.com/?Title=$Title?Косая черта после имени домена - это путь - у вас всегда должен быть путь в HTTP-запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...