AAA Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Активизация кода на странице

Активизация ссылок

Следующий пример делает все ссылки активными, т.е. теперь на них можно нажать.:

<?
## "Активизация" HTML-ссылок.
$text = 'Ссылка: (http://kdg.htmlweb.ru), www.vsetaksi.ru?"a"=b, http://sborki.ru.';
echo hrefActivate($text);

// Функция обратного вызова для preg_replace_callback().
function hrefCallback($p) {
  // Преобразуем спецсимволы в HTML-представление.
  $name = htmlspecialchars($p[0],null,'windows-1251');
  // Если нет протокола, добавляем его в начало строки.  
  $href = !empty($p[1])? $name : "http://$name";
  // Формируем ссылку.
  return "<a href=\"$href\">$name</a>";
}

// Заменяет ссылки на их HTML-эквиваленты ("подчеркивает ссылки").
function hrefActivate($text) {
  return preg_replace_callback(
    '{
      (?:
        (\w+://)          # протокол с двумя слэшами
        |                 # - или -
        www\.             # просто начинается на www
      )
      [\w-]+(\.[\w-]+)*   # имя хоста
      (?: : \d+)?         # порт (не обязателен)
      [^<>"\'()\[\]\s]*   # URI (но БЕЗ кавычек и скобок)
      (?:                 # последний символ должен быть...
          (?<! [[:punct:]] )  # НЕ пунктуацией
        | (?<= [-/&+*]     )  # но допустимо окончание на -/&+*
      )
    }xis',
    "hrefCallback",
    $text
  );
}   
?>

Активизация E-mail -ов

<?
$text = "Привет от somebody@mail.ru, а также от other@mail.ru!";
$html = preg_replace(
  '/(\S+)@([a-z0-9.]+)/is',     // найти все E-mail
  '<a href="mailto:$0">$0</a>', // заменить их по шаблону
  $text                         // искать в $text
);
echo $html;
?>

.

© Copyright 2008- by KDG



Rambler's Top100