удалить URL-адреса, но разрешить адреса электронной почты - PullRequest
1 голос
/ 08 мая 2011

Привет! Я использую следующую функцию для удаления URL-адресов, но обнаружил, что она также удаляет адреса электронной почты.

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

function cleaner($url) {
  $U = explode(' ',$url);
  $W =array();
  foreach ($U as $k => $u) {
    if (stristr($u,'http') || (count(explode('.',$u)) > 1)) {
      unset($U[$k]);
      return cleaner( implode(' ',$U));
    }
  }
  return implode(' ',$U);
}

$url = "Here is another funny site www.tinyurl.com/55555 and http://www.tinyurl.com/55555 and img.hostingsite.com/badpic.jpg";
echo "Cleaned: " . cleaner($url);

1 Ответ

2 голосов
/ 08 мая 2011

Я бы попытался использовать правильное регулярное выражение для сопоставления URL-адресов, а не что-то, что просто совпадает с периодами.Дайте этому шанс: http://daringfireball.net/2010/07/improved_regex_for_matching_urls

Пропустите его через preg_replace и вы получите то, что хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...