我正在尝试通过API发出呼叫,以便我可以删除用户属性。当我转到ourwiki.com/@api/users/=john_smith%40ourwiki.com/properties时,它返回包含所有用户属性的XML。
我正在尝试将该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 :(得分:0)
尝试
$xmlString = file_get_contents("http://ourwiki.com/@api/users/=john_smith%40ourwiki.com/properties");
在第二行。通过在开头不包括协议,PHP正在服务器文件系统中查找文件。
编辑:
你说var_dump($xmlString)
返回false。来自文档:
此函数类似于file(),但file_get_contents()以字符串形式返回文件,从指定的偏移量开始直到maxlen字节。 失败时, file_get_contents()将返回FALSE。
这意味着PHP无法GET
来自该网址的任何数据。
尝试使用
$xmlString = file_get_contents(urlencode('http://ourwiki.com/@api/users/=john_smith@ourwiki.com/properties'));