Тест, когда нет свойств - PullRequest
       1

Тест, когда нет свойств

0 голосов
/ 13 октября 2010

Я создал скрипт, который удалит все пользовательские свойства для конкретного человека. Я могу использовать вызов 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');
}

?>

1 Ответ

0 голосов
/ 13 октября 2010

Конструкция foreach автоматически зацикливается до конца перечислимого объекта (а именно $xml).

Я думаю, вы ищете функцию count:

if(!count($xml->property)) die('No more properties');
...