file_get_contents и переменные - PullRequest
       34

file_get_contents и переменные

0 голосов
/ 08 марта 2012

У меня есть текстовый файл, заполненный списком идентификаторов.Используя PHP, я пытаюсь загрузить URL для каждого из идентификаторов и извлечь что-то с этой страницы (другой идентификатор)

Например, если у меня есть идентификаторы 555, 888, 222, я хочу загрузить URL-адреса

http://example.edu/bvl.P_Sel?facultyID=555

http://example.edu/bvl.P_Sel?facultyID=888

http://example.edu/bvl.P_Sel?facultyID=222

Я пытался получить контент через
file_get_contents("http://example.edu/bvl.P_Sel?facultyID=$lines[0]");

где $ lines - это массив идентификаторов.Это возвращает следующую ошибку:

Warning: file_get_contents(http://example.edu/bvl.P_Sel?facultyID=222)    [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 

Этот URL является примером, но URL в ошибке работает, когда я захожу на него вручную.И если я заменю переменную file_get_contents реальным идентификатором, например ?facultyID=222, он будет работать отлично.

Я посетил ответ на этот вопрос Как разместить данные в PHP с помощью file_get_contents? и попытался назначитьпеременная в массиве $ postdata к переменной, и я получаю ту же самую точную ошибку только с ?facultyID=XXX, удаленным из URL-адреса сообщения об ошибке.

Моя реализация последнего здесь .

Ответы [ 3 ]

2 голосов
/ 08 марта 2012

Эти кодированные символы при использовании функции urlencode (% 0D% 0A) представляют собой новую строку, поэтому, возможно, у вас в массиве идентификаторов есть они в каждом элементе.Попробуйте это:

// your code to generate the lines array
file_get_contents("http://example.edu/bvl.P_Sel?facultyID=" . trim($lines[0]));
1 голос
/ 08 марта 2012
$lines = array(813667,1124279,760643,668461,2868,33613);
print_r($lines);

вывод:

Array ( [0] => 813667 [1] => 1124279 [2] => 760643 [3] => 668461 [4] => 2868 [5] => 33613 )

это:

foreach($lines as $key => $value):
echo '<pre>';
print_r($lines[$key]);
endforeach;

вывод:

    813667
1124279
760643
668461
2868
33613

и это: $ get = file_get_contents ("http://example.edu/bvl.P_Sel?facultyID=$lines[0]"); print_r ($ get);

вывод:

  Example Domains
  As described in RFC 2606,
    we maintain a number of domains such as EXAMPLE.COM and EXAMPLE.ORG
    for documentation purposes. These domains may be used as illustrative
    examples in documents without prior coordination with us. They are 
    not available for registration.

Что не так? :) это то, что вам нужно?

0 голосов
/ 08 марта 2012

Попробуйте использовать CURL для очистки, а также публиковать данные, поскольку они более мощные и продвинутые.

...