2010-08-17 49 views
0

我們有一個由第三方開發人員設計的wiki。我們遇到的問題是用戶的「非活動」仍然顯示在搜索中。阻止用戶看到的解決方法是刪除與該用戶關聯的屬性。在PHP中使用通過API的刪除調用

要訪問用戶的屬性,我們將會對API經過編碼的用戶名的URL的調用是這樣的格式:http://www.ourwiki.com/@api/users/=john_smith%40ourwiki.com/properties

這將回具有性質在逐項XML。

下一步是我不確定如何繼續。我們需要以某種方式遍歷所有屬性並獲取屬性的名稱,以便我們可以刪除它們,通過API進行刪除調用。刪除的格式爲DELETE:用戶/ {用戶ID} /屬性/ {密鑰}

理想情況下,一旦我們有一個工作腳本,將用戶名作爲參數傳遞是理想的。

我在PHP中使用API​​有點新,所以如果任何人有一些想法或可以幫助這個,它將不勝感激。

請參閱此鏈接下載屬性的XML文件: http://queencitytech.com/properties.zip

這裏是什麼retreving用戶屬性後返回:

12010-04-29T04:39:29ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp: //www.avatar.com/avatar/0ee8d636cdd5e57469516332b9325cbc.pngJohnh2010-04-29T04:39:29ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar.com/avatar/0ee8d636cdd5e57469516332b9325cbc.pngJohn2010-04-29T04:39:29ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp:// www.avatar.com/avatar/0ee8d636cdd5e57469516332b9325cbc.pngSmith2010-04-29T04:39:30ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar.com/avatar/0ee8d636cdd5e57469516332b9325cbc.pngSmith, John2010-04-29T04:39:30ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar的.com /化身/ 0ee8d636cdd5e57469516332b9325cbc.pngJohn2010-04-29T04:39:31ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar.com/avatar/0ee8d636cdd5e57469516332b9325cbc.png757E2010-04-29T04:39:31ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar.com/avatar/0ee8d636cdd5e57469516332b9325cbc .pngExt: 61322010-04-29T04:39:31ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar.com/avatar/[email protected]4-29T04:39:32ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar.com/avatar/ 0ee8d636cdd5e57469516332b9325cbc.pngmiddleware /圖像/爆頭/ 01_799/01_799_hs.jpg2010-04-29T04 :39:32ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar.com/avatar/0ee8d636cdd5e57469516332b9325cbc.pngmiddleware/images/lifestyle/01_799/01_799_ls.jpg2010-04-29T04:39:32ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar.com/avatar/0ee8d636cdd5e57469516332b9325cbc.pngImplementation2010 -04-29T04:39:33ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar.com/avatar/0ee8d636cdd5e57469516332b9325cbc.pngWeil, T2010-04-29T04:39:33ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar.com/avatar/0ee8d636cdd5e57469516332b9325cbc.pngCo-op2010- 04-29T04:39:34ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar.com/avatar/0ee8d636cdd5e57469516332b9325cbc.png0000-00-00 00:00:002010-04-29T04:39:34ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar.com/avatar/ 0ee8d636cdd5e57469516332b9325cbc.pngCoop2010-05-02T04:40:35ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar.com/avatar /0ee8d636cdd5e57469516332b9325cbc.pngfalse2010-05-03T19:09:[email protected][email protected][email protected]://www.avatar.com/avatar/52909eac4d19209592168dc96f3d4fca.pngCincinnati2010-05-14T04:15:13ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www .avatar。COM /化身/ 0ee8d636cdd5e57469516332b9325cbc.png4572010-07-16T04:50:13ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp://www.avatar.com/avatar/0ee8d636cdd5e57469516332b9325cbc.png2010-07-14 16:06:232010-07-16T04:50:17ZAdminAdmin0ee8d636cdd5e57469516332b9325cbchttp:// www.avatar.com/avatar/0ee8d636cdd5e57469516332b9325cbc.png

下面是包括的var_dump(陣列($刪除$屬性)) http://queencitytech.com/deletescript.php.html

+0

我假設你將需要粘貼一些XML的... – Fosco 2010-08-17 18:21:52

+0

對不起,我上面加什麼是得到一個用戶的屬性 – Aaron 2010-08-17 18:29:49

+0

這不是XML後返回。或者你首先弄錯了,那是實際的迴應?你必須爲我們解密。 – mhitza 2010-08-17 22:39:06

回答

0

假設你有存儲在XML中的文件變量名稱$xmlString和變量$user_id中的用戶標識LD使用下面的代碼:

$delete = "http://www.ourwiki.com/@api/DELETE:users/$user_id/properties/%s"; 
$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)); 
} 

或者,如果你知道所有可能的性能會更容易有一個函數,它不會一氣呵成所有這些調用,而不需要讀取性能之前。

$properties = array(); // array of property names 
$delete = "http://www.ourwiki.com/@api/DELETE:users/$user_id/properties/%s"; 

foreach($properties as $property) { 
    $name = $property['name']; 
    file_get_contents(sprintf($delete, $name)); 
} 
+0

謝謝,我會試試這個。顯然,在打電話給/屬性時,它會列出與用戶關聯的所有屬性。用戶屬性是鍵和值可以是任何東西的關鍵值,所以不幸的是無法知道所有選項。 – Aaron 2010-08-18 17:33:38

+0

我知道我需要通過調用API(http://www.ourwiki.com/@api/users/=john_smith%40ourwiki.com/properties)來獲得我認爲可以實現的XML,但是我會如何採取這種迴應並將其存儲在一個變量?如果用戶可以輸入電子郵件,並且會調用xml並執行刪除,那將會很棒。 – Aaron 2010-08-18 17:47:13

+0

通過調用'file_get_contents('ourwiki.com/@api/users/=john_smith%40ourwiki.com/properties')'將返回XML,之後您可以傳遞給'SimpleXMLElement'類。 – mhitza 2010-08-18 18:44:24