форматирование URL для одного типа - PullRequest
1 голос
/ 27 апреля 2011

У меня есть текстовое поле, в которое я буду получать URL

URL можно вводить в любом из следующих форматов:

 example.com
 www.example.com

 http://example.com
 http://www.example.com

 example.com/
 www.example.com/

 http://example.com/
 http://www.example.com/

Мне нужно преобразовать их в один1006 *

http://example.com/

Как я могу это сделать, должен быть простой способ сделать это, верно?

Ответы [ 2 ]

1 голос
/ 27 апреля 2011

Если вы действительно ожидаете только этих нескольких вариаций, вы можете решить это с помощью регулярного выражения.Например,

<?php
// $input = The data you retrieved

$output = preg_replace('#^(?:http://)?(?:www\.)?(.*?)/?$#', 'http://$1/', $input);
echo $output;

Я не проверял, но должен работать .. Если нет, дайте мне знать:)

** Редактировать ** Только что протестировалРаботает отлично.По крайней мере для указанных вами форматов.

1 голос
/ 27 апреля 2011

Попробуйте использовать регулярное выражение с некоторыми необязательными частями. Кажется, необязательные части вашей строки ...

  • http://
  • WWW.
  • трейлинг /

Вот код ...

$text = "http://example.com";
if (preg_match('%^(http://)?(www\.)?(.*?)(/)?$%i', $text, $regs)) {
    $result = $regs[3];
    // $result now contains example.com - add whatever wrapper you need to it
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...