Je veux coder une URL en PHP dans le même comportement dans Swift est ici l'exemple Swift:URL Pourcentage d'encodage que la requête en PHP comme dans Swift
let string = "http://site.se/wp-content/uploads/2015/01/Hidløgsma.jpg"
let encodedString = string.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
Résultat: http://site.se/wp-content/uploads/2015/01/Hidl%25F8gsma.jpg
comment obtenir le même résultat en PHP c'est-à-dire une fonction qui code seulement la requête et renvoie le même résultat avec l'exemple de chaîne. Voici la documentation sur la fonction Swift:
func addingPercentEncoding(withAllowedCharacters allowedCharacters: CharacterSet) -> String?
chaînes d'URL entières ne peuvent pas être codés pour cent, parce que chaque URL élément spécifie un ensemble différent de caractères autorisés. Pour par exemple, le composant de requête d'une URL autorise le caractère "@", mais ce caractère doit être codé en pourcentage dans le composant de mot de passe.
Le codage UTF-8 est utilisé pour déterminer les caractères codés en pourcentage corrects . Tous les caractères des caractères autorisés en dehors de la plage ASCII 7 bits sont ignorés.
https://developer.apple.com/documentation/foundation/nsstring/1411946-addingpercentencoding
urlQueryAllowed
Le composant de requête d'une URL est le composant immédiatement après une marque d'interrogation (?). Par exemple, dans l'URL http://www.example.com/index.php?key1=value1#jumpLink, le composant de requête est key1 = valeur1.
https://developer.apple.com/documentation/foundation/nscharacterset/1416698-urlqueryallowed
Vous devez analyser le chemin après le domaine, encoder chaque composant qui fait partie de la requête en utilisant 'urlencode' et reconstruire l'URL. – jeroen
De préférence, vous devriez vraiment encoder ces composants individuellement lors de l'assemblage de l'URL, pas après le fait. Et si au lieu de ø vous avez un/dans votre valeur? Ensuite, il est totalement ambigu de savoir si cela devrait être codé ou non. – deceze