Advertisement
phpist

Untitled

Oct 21st, 2019
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1.  
  2. объясните код как происходит ссылка активной
  3.  
  4.  
  5. Листинг 20.20. "Активизация" HTML-ссылок. Файл http.php
  6. <?php ## "Активизация" HTML-ссылок
  7. $text = 'Ссылка: (http://thematrix.com), www.ru?"a"=b, http://lozhki.net.';
  8. echo hrefActivate($text);
  9. // Заменяет ссылки их HTML-эквивалентами ("подчеркивает ссылки")
  10. function hrefActivate($text)
  11. {
  12. return preg_replace_callback(
  13. '{
  14. (?:
  15. (\w+://)
  16. # протокол с двумя слешами
  17. |
  18. # - или -
  19. www\.
  20. # просто начинается на www
  21. )
  22. [\w-]+(\.[\w-]+)*
  23. # имя хоста
  24. (?: : \d+)?
  25. # порт (не обязателен)
  26. [^<>"\'()\[\]\s]*
  27. # URI (но БЕЗ кавычек и скобок)
  28. (?:
  29. # последний символ должен быть...
  30. (?<! [[:punct:]] ) # НЕ пунктуационным
  31. | (?<= [-/&+*]
  32. ) # но допустимо окончание на -/&+*
  33. )
  34. }xis',
  35. function ($p) {
  36. // Преобразуем спецсимволы в HTML-представление
  37. $name = htmlspecialchars($p[0]);
  38. // Если нет протокола, добавляем его в начало строки
  39. $href = !empty($p[1])? $name : "http://$name";
  40. // Формируем ссылку
  41. return "<a href=\"$href\">$name</a>";
  42. },
  43. $text
  44. );
  45. }
  46. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement