我创建了一个脚本,它将删除特定个人的所有用户属性。我能够使用api调用从xml获取用户的属性。我正在使用删除api删除每个属性。
我希望能够在没有剩余属性时进行测试,然后相应地输出消息。 for循环内部是找到每个属性的位置。任何帮助当然值得赞赏。
以下是代码:
<?php
$user_id="john_smith@ourwiki.com";
$url=('http://user:12345@192.168.245.133/@api/users/=john_smith@ourwiki.com/properties');
$xmlString=file_get_contents($url);
$delete = "http://user:12345@192.168.245.133/@api/DELETE:users/$user_id/properties/%s";
$xml = new SimpleXMLElement($xmlString);
function curl_fetch($url,$username,$password,$method='DELETE')
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // returns output as a string instead of echoing it
curl_setopt($ch,CURLOPT_USERPWD,"$username:$password"); // if your server requires basic auth do this
return curl_exec($ch);
}
foreach($xml->property as $property) {
$name = $property['name']; // the name is stored in the attribute
curl_fetch(sprintf($delete, $name),'user','12345');
}
?>
答案 0 :(得分:0)
foreach
构造自动循环,直到可枚举对象的末尾(即$xml
)。
我认为你正在寻找count
功能:
if(!count($xml->property)) die('No more properties');