file_get_contents () возвращает пустую строку при аутентификации, в противном случае хорошо - PullRequest
0 голосов
/ 10 мая 2011

Итак, я новичок в работе с API и PHP, так что терпите меня.Я пытаюсь использовать API для аутентификации на сайте с помощью параметров GET (как предлагается в документации API).Я пытаюсь использовать file_get_contents (), чтобы вернуть маркер аутентификации, который он возвращает.Перенаправление на URL выводит токен в формате XML.

Однако, когда я делаю следующее, он возвращает пустую строку.Как я могу вернуть полный вывод XML?

$token = file_get_contents('http://example.com/api.asp?cmd=logon&email=xxx@something.com&password=s0mep@SSword');
var_dump($token);

Я получаю следующий вывод:

string(116) ""

Любые идеи о том, что я делаю неправильно?

Ответы [ 2 ]

1 голос
/ 10 мая 2011

Попробуйте сделать:

$token = str_replace("<", "&lt;", $token);
$token = str_replace(">", "&gt;", $token);

vd($token);

Это происходит потому, что ваш браузер интерпретирует XML, который вы читаете, как HTML, и читает XML как теги. (Вы можете сказать, что строка не пустая, потому что vd, который, как я предполагаю, является псевдонимом для var_dump, говорит о том, что длина строки 116.) Замена < и > с их действительными объектами HTML должны решить это.

0 голосов
/ 10 мая 2011

Учитывая, что API возвращает XML, вы можете использовать SimpleXML в PHP для непосредственного анализа файла:

 <?php
 $token = simplexml_load_file('http://example.com/api.asp?cmd=logon&email=xxx@something.com&password=s0mep@SSword');
 vd($token);
 ?>
...