C'est quelque chose que je pourrais bidouiller ensemble, mais je me demandais si quelqu'un avait une solution propre à mon problème. Quelque chose que je jette ensemble ne sera pas nécessairement très concis ou rapide!Couper seulement la première et dernière occurrence d'un caractère dans une chaîne (PHP)
J'ai une chaîne comme ceci ///hello/world///
. Je n'ai besoin de dépouiller que le premier et le dernier slash, aucun des autres, de sorte que j'obtiens une chaîne comme celle-ci //hello/world//
.
Le trim
de PHP n'est pas tout à fait exact: effectuer trim($string, '/')
retournera hello/world
. Une chose à noter est que la chaîne n'aura pas nécessairement de barres obliques au début ou à la fin. Voici quelques exemples de ce que je voudrais arriver à différentes chaînes:
///hello/world/// > //hello/world//
/hello/world/// > hello/world//
hello/world/ > hello/world
Merci d'avance pour toute aide!
Pourquoi ne pas apporter un exemple du monde réel au lieu de un tel mannequin? Peut-être qu'il peut y avoir une meilleure solution, pour votre cas seulement? Un cas réel. –
@col Ceci est presque monde réel. Cela fait partie d'une classe de routage qui reçoit le chemin d'URL actuel pour le router vers le contrôleur approprié. Je viens de remarquer que 'http: // example.com/path/to/file' se résout au même contrôleur que' http: //example.com /// chemin/en/fichier // ', donc l'exemple ci-dessus est presque exactement ce que les chaînes que je vais ressembler :) Je gère les chemins – Rowan
Mais quelle est la raison d'avoir de telles barres multiples? Les chemins ont besoin d'un seul. Je n'ai jamais vu de chemin comme celui-ci: '/// chemin/vers/fichier //'. Où les obtenez-vous et pourquoi ne voulez-vous pas normaliser, ce qui en fait habituel/chemin/vers/fichier /? –