Для початку давайте розберемося, у чому відмінність активного посилання і неактивної. Уявімо, що ми розміщуємо простий текст, в якому є посилання, або 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
Відповісти
30.04.2017 у 08:04
$str = «simple test «;
echo parse_links($str);
І передайте привіт верстки;
echo htmlspecialchars(parse_links($str));
і посилання стали ще гарніше))
Відповісти
30.04.2017 у 08:07
парсер з’їв
$str = simple test *тут закриває дів*;
а тут вкладені теги bold, bold italic
Відповісти