2010-08-22 4 views
0

Я пытаюсь выполнить вызов через API, чтобы я мог удалить пользовательские свойства. Когда я перехожу к ourwiki.com/@api/users/=john_smith%40ourwiki.com/properties, он возвращает XML, который включает все эти свойства пользователей.Получение XML через вызов API

Я пытаюсь сохранить этот XML в переменной $ xmlString, тогда я должен пройти цикл, чтобы получить свойства и, в свою очередь, удалить. Свойства пользователя - это ключевое значение, где ключ и значение могут быть любыми, поэтому, к сожалению, нет возможности узнать все параметры.

код до сих пор:

$delete = "http://www.ourwiki.com/@api/DELETE:users/$user_id/properties/%s"; 
$xmlString = file_get_contents('ourwiki.com/@api/users/=john_smith%40ourwiki.com/properties') 
$xml = new SimpleXMLElement($xmlString); 

foreach($xml->property as $property) { 
    $name = $property['name']; // the name is stored in the attribute 
    file_get_contents(sprintf($delete, $name)); 
} 

По какой-то причине, file_get_contents, кажется, не быть в состоянии получить XML. Я даже убедился, что allow_url_fopen включен в среде. Любая помощь с этим была бы весьма признательна.

+0

Вы получаете ошибку/предупредительное сообщение с error_reporting установлен E_ALL в? Каково значение $ xmlString ('var_dump ($ xmlString);')? – VolkerK

+0

Предполагая, что я просто добавляю var_dump ($ xmlString) после того, как я назначил переменную, он возвращает bool (false). – Aaron

ответ

0

Попробуйте

$xmlString = file_get_contents("http://ourwiki.com/@api/users/=john_smith%40ourwiki.com/properties"); 

во второй строке. Не включая протокол в начале, PHP ищет файл в файловой системе серверов.

EDIT:

Вы сказали, что var_dump($xmlString) возвращает ложь. Из документов:

Эта функция аналогична файлу(), за исключением того, что file_get_contents() возвращает файл в строке, начиная с указанного смещения до maxlen байтов. При ошибке file_get_contents() вернет FALSE.

Это означает, что PHP не может GET любых данных с этого URL-адреса.

Попробуйте использовать

$xmlString = file_get_contents(urlencode('http://ourwiki.com/@api/users/[email protected]/properties')); 
+0

Извините, когда я написал, что я пропустил его в сообщении, но я действительно включил протокол при фактическом тестировании скрипта. Однако, похоже, это не имеет никакого эффекта. – Aaron

+0

Каков результат 'var_dump', о котором спрашивал VolkerK? –

+0

Я только что добавил комментарий выше, но он возвращает bool (false) – Aaron

Смежные вопросы