2010-10-02 4 views
0

J'ai un $ delete path et un $ user_id incluent respectivement '#' et '@' dans la chaîne. Comment puis-je remplacer chacun avec la valeur codée% 23 et 40 $.Comment encoder seulement 2 caractères dans le chemin?

Je fatigué en utilisant str_replace mais n'a pas eu de chance: str_replace($string, array('@', '#'), array('%40', '%23'));

Mon chemin complet Supprimer ressemble à ceci:

$delete = "http://admin:[email protected]/@api/deki/DELETE:users/$user_id/properties/%s"; 

Je me sens comme le $ user_id devrait être assez simple. Pour les propriétés, il doit traverser pour obtenir toutes les propriétés disponibles. Vous pouvez voir ci-dessous la boucle:

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

Chaque propriété contient un « # », donc est-il possible que chaque itération qui modifient « # » pour être la valeur appropriée?

Merci d'avance.

Répondre

0

Vous utilisez str_replace tort: ​​Le premier paramètre est recherche, la deuxième remplacer et le troisième sujet:

mixte str_replace (mixte recherche $, mélangé $ remplacer, mélangé $ sujet [, int & $ nombre])

Alors:

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

@Gumbo Je viens d'essayer ce directement après l'attribution du user_id $, et après la str_replace je l'a imprimé. Pour une raison quelconque, il me donne toujours l'user_id sans le% 40 comme il se doit. Des idées? – Aaron

+0

@Aaron: Avez-vous réaffecté la valeur modifiée à la variable? – Gumbo

+0

@Gumbo Ah, je pense que c'est mon problème. Est-ce que cela signifie que je dois faire $ user_id = str_replace (...)? – Aaron

Questions connexes