Использование urlencode в скрипте - PullRequest
1 голос
/ 12 сентября 2010

Я работал над сценарием, который можно использовать для внутренней вики, который удалит свойства неактивного пользователя.Я верю, что почти у меня есть проблемы с API.

Я думаю, мне нужно использовать urlencode в пути $ delete, НО только для @ в адресе электронной почты и # в свойстве.Я знаю, как использовать urlencode для всего этого, но не только для этого.То, как это работает, состоит в том, чтобы пройти через свойства для получения свойств, и большинство из них включают # в имени.Любой, кто может помочь изменить это так, будет очень признателен!

Вот сценарий:

 <?php

    $user_id="john_smith@ourwiki.com";

    $url=('http://admin:12345@192.168.245.133/@api/deki/users/=john_smith@ourwiki.com/properties');
    $xmlString=file_get_contents($url);

    $delete = "http://admin:12345@192.168.245.133/@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');
    }

    ?>

1 Ответ

0 голосов
/ 29 марта 2011

Как это?

$delete = "http://admin:12345@192.168.245.133/@api/deki/DELETE:users/".urlencode($user_id)."/properties/%s";
...