Заменить 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);
это работает сейчас, я думаю!