Мне нужно обработать имя домена, заменить в конце строки "-com", "-net-ru", "-org-ru", "-pp-ru", на соответствующий ".com", ".net.ru" и так далее. С доменом второго уровня я вроде как разобрался, а вот с доменами третьего уровня как обработать не разберусь. PHP: $secondPart = preg_replace('/(.*)\-([\w]{2,4})$/', '\1.\2' ,$secondPart); Заранее спасибо за помощь
непонятно. откуда берутся эти "-com", "-net-ru", "-org-ru", "-pp-ru" ? покажите что есть на входе, и что должно получится на выходе?
PHP: $secondPart = "my-test-domain-org-ru" // my-test-domain.org.ru $secondPart = "my-test-domain-com" // my-test-domain.com $secondPart = "my-test-domain-net-ru" // my-test-domain.net.ru
те там(my-test-domain) всегда известный заранее домен, или может быть какие угодно. если могут быть любые разные, то такой пример как разруливать my-test-domain.org.ru и my-test-domain-org.ru
В строке не бывает точек, в домене. PHP: $secondPart = "gsergreg-net-ru" // gsergreg.net.ru $secondPart = "lalo-organization-com" // lalo-organization.com $secondPart = "fewfqef-adfgafdg-pp-ru" // fewfqef-adfgafdg.pp.ru
и я об этом. есть заготовка Код (Text): $secondPart = "gsergreg-net-ru"; домен второго уровня может вполне может содержать -net тогда, как понять, какой должен получится результат? такой gsergreg-net.ru или такой gsergreg.net.ru
Первый пробел с конца заменить на точку? PHP: $_= 'my-test-domain-net-ru'; print preg_replace('/(.+)-(\w{2,3})-(\w{2,3})$/', '$1-$2.$3 ', $_); --- Добавлено --- Дальше... А $2 может принимать какие значения? pp, org, net ? --- Добавлено --- Невнимательно прочитал условие... Сейчас.
PHP: <?php $_= ' my-test-domain-net-ru my-test-domain-org-ru gsergreg-net-ru lalo-organization-com fewfqef-adfgafdg-pp-ru '; $_= preg_replace('/(.+)-(com)/', '$1.$2', $_); $_= preg_replace('/(.+)-(net|pp|org)-(ru)/', '$1.$2.$3 ', $_); print $_;