如何在路径中只编码2个字符?

时间:2010-10-02 15:12:06

标签: php encoding

我有一个$ delete路径,$ user_id分别包含字符串中的'#'和'@'。如何用编码值%23和$ 40替换每个。

我累了使用str_replace但没有运气: str_replace($string, array('@', '#'), array('%40', '%23'));

我的完整删除路径如下所示:

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

我觉得$ user_id应该非常简单。对于属性,它必须循​​环以获取所有可用属性。你可以看到下面的循环:

foreach($xml->property as $property) {
      $name = $property['name']; // the name is stored in the attribute
      curl_fetch(sprintf($delete, $name),'admin','12345');
    }

每个属性都包含一个'#',那么有没有一种方法可以将每个迭代修改为'#'为适当的值?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您错误地使用str_replace:第一个参数是搜索,第二个替换和第三个主题

  

混合 str_replace (混合 $ search ,混合 $ replace ,混合 $ subject [,int & $ count ])

所以:

str_replace(array('@', '#'), array('%40', '%23'), $string)