Заменить URL с помощью preg_replace php

Привет всем, я знаю, preg_replace может быть использован для форматирования строки, но мне нужна помощь в этой области, мой URL будет таким

www.example.com/en/index.php

или же

www.example.com/fr/index.php

что я хочу получить

результат как

www.example.com/index.php

мне нужно в php-коде, чтобы установить в сеансе

Может кто-нибудь, пожалуйста, объясните, как?

4 ответа

Решение

preg_replace('/www.example.com\/(.+)\/index.php/i', "www.example.com/index.php?lang=$1", $url); сделаю вещь

Я подозреваю, что в этом случае было бы быстрее просто использовать str_replace следующим образом:

$cleanedData = str_replace(array('www.example.com/en/', 'www.example.com/fr/'), '', $sourceData);

Это один из способов сделать это:

$newurl = preg_replace('/\/[a-z][a-z]\//', '/', $url);

Обратите внимание, что строка поиска отображается с кавычками и косой чертой ('/.../'), а затем косая черта в URL должна быть экранирована (\/). Код языка затем сопоставляется с "[az][az]", но есть несколько других способов сделать это, и вы можете захотеть что-то более либеральное в случае, если когда-либо будут 3-буквенные коды или заглавные буквы. Точно так же вам может потребоваться сделать что-то более тесное в зависимости от того, какие другие схемы URL могут появиться.

Наконец-то я получил метод, благодаря спасибо Purpletoucan

$newurl = preg_replace('/\/(en|esp|fr)\//', '/', $url);

это работает сейчас, я думаю!

Другие вопросы по тегам