Я работал над скриптом, который может быть использован для внутренней вики, которая удалит свойства для пользователя, который неактивен. Я считаю, что я почти там, но у меня проблема с api.Использование urlencode в скрипте
Я думаю, мне нужно использовать urlencode на пути $ delete, но только для @ в адресе электронной почты и # в свойстве. Я знаю, как использовать urlencode для всего, но не только об этом. Как он работает, он перебирается, чтобы получить свойства, и большинство из них содержат # в имени. Любой, кто может помочь изменить, чтобы эта работа была высоко оценена!
Вот сценарий:
<?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');
}
?>
Работает ли эта строка ?: '$ xmlString = file_get_contents ($ url);'. Если это так, URL-адрес действителен. –
Не можете ли вы использовать str_replace, если знаете, что вы хотите закодировать? –
@SimpleCoder Это происходит, но проблема в том, что удаление api не работает. Когда я запускал отдельную команду CURL, используя urlencoded версию, она удаляла свойство по своему желанию. Но когда он не был закодирован, он дал мне ошибку 404 и не смог завершить. – Aaron