Для початку давайте розберемося, у чому відмінність активного посилання і неактивної. Уявімо, що ми розміщуємо простий текст, в якому є посилання, або email адреси. Так як текст відображається в браузері, у нас з’являється можливість оформити посилання відповідно до синтаксису розмітки HTML, після чого посилання буде відкривати ресурс при кліці по ній. Іншими словами, у цьому випадку посилання стає не просто рядком, а активним посиланням, оформленої згідно синтаксису HTML. Саме це і визначає посилання активної або ні.

На деяких сайтах можна зустріти текст, у яких є неактивні посилання. Такі посилання можуть бути наслідком відсутності базових навичок оформлення посилань у користувачів, які розміщують текст. Бувають і випадки коли їх не оформляють спеціально, по ряду якихось причин, але суть не в цьому. Давайте розглянемо приклад, як можна знайти всі посилання в тексті і зробити їх активними. Для пошуку посилань та email адрес в тексті ми скористаємося регулярними виразами. Для зручності використання оформляємо код у вигляді функції:

function parse_links($str)
{
$str = str_replace(‘www.’, ‘http://www.’, $str);
$str = preg_replace(‘|http://([a-zA-Z0-9-./]+)|’, ‘$1’, $str);
$str = preg_replace(‘/(([a-z0-9+_-]+)(.[a-z0-9+_-]+)*@([a-z0-9-]+.)+[a-z]{2,6})/’, ‘$1’, $str);
return $str;
}

До функції звертаємося таким чином:

// наш вихідний текст
$str = ‘Блог про веб-розробки http://yournet.kz’;
// звертаємося до функції
echo parse_links($str);
// На виході отримуємо:
// Блог про веб-розробки http://yournet.kz’;

Тепер про мінуси даного прикладу. Потрібно розуміти, що чим більше текст, тим довше відбувається його обробка, і навантаження на процесор вашого сервера. Це означає, що посилання слід перетворювати ще до моменту запису тексту в базу, тобто кінцевим відвідувачам сайту текст повинен показуватися вже з перетвореними посиланнями ще на стадії його додавання.

Додав: htmaker, 05.08.2015 р.
(2 голосів, середній: 5,00 з 5)

Завантаження…

Діліться з друзями:

См. також:


Пісочниця для PHP
Рубрика: PHP, Інструменти

Конфіг файли
Рубрика: PHP

Установка XCache в Linux CentOS
Рубрика: Linux, PHP

Використання SOAP в PHP
Рубрика: PHP

Встановлення PHP Soap на CentOS
Рубрика: Linux, PHP

Обсяг даних в зручному форматі на PHP
Рубрика: PHP

Транслітерація символів на PHP
Рубрика: PHP

Як перетворити URL-рядок в масив?
Рубрика: PHP

Добірка шаблонів регулярних виразів
Рубрика: PHP

Коментарі

  • Алекс пише:
    11.11.2016 в 23:53

    Відмінно!
    Тільки першою строчкою потрібно додати:
    str = str_replace(‘http://www’, ‘www’, $str);

    Інакше до адрес http://www додавати зайве http

    Відповісти

  • nazarpunk пише:
    30.04.2017 у 08:04

    $str = «simple test «;

    echo parse_links($str);
    І передайте привіт верстки;

    echo htmlspecialchars(parse_links($str));

    і посилання стали ще гарніше))

    Відповісти

  • nazarpunk пише:
    30.04.2017 у 08:07

    парсер з’їв
    $str = simple test *тут закриває дів*;

    а тут вкладені теги bold, bold italic

    Відповісти