我只需要編碼部分$ delete路徑。只有電子郵件地址中的@和屬性中的#。我知道如何將urlencode用於整個事情,但不是那樣。它的工作方式是通過循環來獲取屬性,其中大部分都包含名稱中的#號。任何人可以幫助修改,以便這個作品將不勝感激!使用PHP編碼部分路徑使用PHP
的刪除:
$delete = "http://admin:[email protected]/@api/deki/DELETE:users/$user_id/properties/%s";
- 在這裏你可以看到$ USER_ID這將是一個電子郵件地址,但@符號需要進行編碼。
- 最後的屬性在名稱中有一個#,這也需要編碼。例如,一個屬性名稱USERPROFILE#external.created_date
這是迄今爲止代碼:
<?php
$user_id="[email protected]";
$url=('http://admin:[email protected]/@api/deki/users/[email protected]/properties');
$xmlString=file_get_contents($url);
$delete = "http://admin:[email protected]/@api/deki/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),'admin','12345');
}
?>
請剪下您的示例代碼,只針對您遇到的問題。我無法確定您想要轉義的數據或其使用位置。 – erisco 2010-09-23 15:58:02
@erisco感謝您回覆此問題。我很抱歉沒有說清楚。我編輯了這篇文章,並試圖更好地記錄需要解決的問題。這一切都與現有的api有關。我有一個for循環,用於捕獲特定user_id的所有給定屬性。如果您有任何問題,請告訴我。 – Aaron 2010-09-23 19:48:53