Кодировать часть пути, используя PHP - PullRequest
1 голос
/ 23 сентября 2010

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

Удалить:

 $delete = "http://admin:12345@192.168.245.133/@api/deki/DELETE:users/$user_id/properties/%s";
  1. Здесь вы можете увидеть $ user_id это будет адрес электронной почты, НО символ @ необходимо кодировать.
  2. Свойства, которые следуют в самом конце, имеют # внутри имени, это также необходимо кодировать. Например, одно имя свойства userprofile # external.created_date

Вот код на данный момент:

 <?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 голосов
/ 24 сентября 2010

Вы пробовали это? str_replace ($ string, array ('@', '#'), array ('% 40', '% 23'));

Функция urlencode не позволяет ограничить ее подмножеством символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...