J'ai un tas de liens qui ressemblent à ceci ci-dessous Je veux remplacer les occurrences de / en quelque chose comme / fr-gb (/ fr- $ pays) et le mot GB est dans une variable $ Pays. p> Le résultat final serait par exemple p>
4 Réponses :
Vous pouvez le faire avec Str_replace facilement:
^ look at the begin of the string
\/ look for an / (\ is for escaping)
[a-z]{2} look for two characters a-z
mais le mot fr pourrait être ch, CN ou un mot de 2 lettres
Puis remplacez EN code> avec une variable.
statique ou d'une variable?
statique pas une variable
Vous remplacerez ce modèle non seulement au début, mais également dans la chaîne.
Je suppose que la conception de l'URL est de lui-même .. SO / EN / NE PAS arriver deux fois
Vous pouvez utiliser si vous souhaitez correspondre à toutes les deux chaînes de caractères (avec des caractères WordIquiLes), vous pouvez utiliser: P> Preg_replace Code> . Pour faire correspondre uniquement le motif au début, utilisez la regex suivante: ^\/(\w{2})\/
mais le mot fr peut être ch, CN ou un mot de 2 lettres
Probablement mieux utiliser Preg_replace ici parce que nous examinons le début de la chaîne ici.
$string = preg_replace("/^(\/?)([a-z]{2})/", "$1$2-".$country, $string);
Pourquoi tant de groupes? Utilisez Preg_replace ('~ ^ /? [A-Z] {2} ~', '$ 0 -'. $ Country, $ string) code>
Si vous devez remplacer uniquement au début: p> $ Orig code> peut être une chaîne ou une gamme de chaînes. Cela le remplacera n'importe où dans la chaîne, pas seulement au début: $orig = preg_replace("#^/$lang#", "/$lang-$country", $orig);