Разбор "site.com" из переданной переменной в PHP? - PullRequest
0 голосов
/ 05 сентября 2010

Я передаю различные URL-адреса в глобальной переменной target_passthrough, поэтому URL-адрес страницы может выглядеть следующим образом: http://www.mysite.com/index.php?target_passthrough=example.com

Или что-то в этом роде.Форматы для этой переменной могут быть различными, например (минус кавычки):

  1. "www.example.com"
  2. ". Example.com"
  3. "example.com"
  4. "http://www.example.com"
  5. ". example.com/subdir/"
  6. ". example.com/subdir/page.php"
  7. "example.com/subdir/page.php"

Обратите внимание, что некоторые из них имеют точки в качестве первого символа, такие как 2,5 и 6.

Теперь, что я пытаюсь сделать, это просто извлечь "example.com" из любого из этих возможных сценариев с помощью PHP и сохранить его в переменной для последующего вывода. Я попробовал parse_url, но он дает мне "www", когдаэто присутствует, чего я не хочу. В тех случаях, когда URL-адрес просто «example.com», он возвращает нулевое значение.

Я действительно не знаю, как сделать сопоставление регулярному выражению или если это дажечто мне нужно, так что любые рекомендации будут оценены - не очень, что продвинулись в php.

Ответы [ 2 ]

2 голосов
/ 05 сентября 2010

Как вы указали, вы можете использовать parse_url , чтобы выполнить большую часть работы за вас, а затем просто убрать www или начальную точку, если она присутствует.

AnАльтернативная стратегия получения последних двух «слов» не всегда будет работать, потому что существуют домены типа www.example.co.uk.Использование этой стратегии даст вам co.uk вместо example.co.uk.Не существует простого правила для определения того, какие части являются доменом или поддоменом.

0 голосов
/ 05 сентября 2010

parse_url () выводит массив различных частей URL.Вы получаете нулевые значения, потому что вы ссылаетесь только на первый элемент в массиве. parse_url ()

 Array (
        [scheme] => http
        [host] => hostname
        [user] => username
        [pass] => password
        [path] => /path
        [query] => arg=value
        [fragment] => anchor 
         )
...