|
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
|
||||||
Найти и обернуть ссылки в тексте06.03.2014, 23:49. Показов 23804. Ответов 15
Метки нет (Все метки)
Доброй ночи.
В интернете накопал регулярное выражение, которое находит в тексте ссылки и оборачивает их в тег <a></a>. Минут этой регулярки в том, что она не учитывает длинну ссылки. Если сылка будет слишком длинной, она будет показываться в одну строку. Как переделать эту регулярку, чтобы из длинных ссылок, она делала примерно следующее: http://site.ru/users/act ... age12.html Вот регулярное выражение:
Или может быть у вас имеются свои варианты..
0
|
||||||
| 06.03.2014, 23:49 | |
|
Ответы с готовыми решениями:
15
Обернуть все ссылки в тег <a> Обработать ссылки в тексте Распознавание ссылки в тексте |
|
Невнимательный
|
||||||
| 07.03.2014, 02:48 | ||||||
|
переделать можно....
из вариантов только preg_replace_callback(), ... с любым из таких выражением
1
|
||||||
|
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
|
||||||
| 07.03.2014, 12:16 | ||||||
2
|
||||||
|
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
|
|
| 07.03.2014, 15:27 [ТС] | |
|
Благодарю. А как будет выглядеть регулярное выражение, если мы просто сократим длинную ссылку, до таково вида: http://site.ru/users/act.. и обернём её в тег <a></a>? Думаю, в принципе это будет намного проще.
0
|
|
|
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
|
|
| 07.03.2014, 15:49 | |
|
0
|
|
|
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
|
|
| 07.03.2014, 15:51 [ТС] | |
|
До такого вида: <a href='http://site.ru/users/action/index.html'>http://site.ru/users/act..</a>
0
|
|
|
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
|
|
| 07.03.2014, 16:27 | |
|
А понял.. потребуется две регулярки - одна берет целиком ссылку, вторая будет резать ссылку. Имхо сложнее только получится, тем более если есть возможность использовать строковые ф-ии то лучше использовать их т.к. интерпретатор регулярок не так быстр. В приведенном примере, в ф-ии shortLinks просто обрезайте $matches[0] с помощью mb_substr до нужной длины..
1
|
|
|
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
|
||||||
| 07.03.2014, 18:00 [ТС] | ||||||
|
ads. Не побоюсь признаться, ваш вариант не совсем приемлем для меня. Без обид. Мне бы что попроще.
В интернете нашёл очень хороший пример. Но и здесь, автор не учитывыет длинные ссылки.
0
|
||||||
|
Невнимательный
|
|
| 08.03.2014, 02:19 | |
|
дело не в выражении... а в том что нужен вывод на основе дополнительной проверки.
или если ссылка не длинная, то без проверки к ней тоже придётся ..... лепить. Отсюда вытекает что это можно сделать только с модификатором /e (eval в строке замены) или двумя проходами с двумя разными выражениями(длинные/короткие ссылки) или с помощью callback функции (во многих случаях самое оптимальное) или ещё более рукодельные варианты... применение (.*?)(\s|\n|[,.?!](\s|\n)|$) в вашем первом примере по сути то-же самое что и [^\s,.?!], только слишком неоптимальное и например ?. вполне себе могут присутствовать в ссылках... последний пример тоже не лишён неоптимальности... но это на всё на выбор кодера, как-бы на вкус и цвет...
1
|
|
|
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
|
|
| 08.03.2014, 02:28 [ТС] | |
|
Ладно. Спасибо за помощь. Попробую сам освоить регулярные выражения. Всё равно пригодятся знания. А там уж, что-нибудь придумаю что делать с сылками.
0
|
|
|
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
|
|||||||||||||||||||||
| 20.09.2014, 17:35 [ТС] | |||||||||||||||||||||
|
Почти всё готово. Следующий код, почти доработан.
Пробовал исправлять регулярку так '#(^|\s+)[www][^\s]+#ui'. Но и этот вариант не совсем приемлем. Так как в данном случае, он захватывает ещё и пробел, добавляя его в конечный результат своего преобразования. Как исправить данное('#[www][^\s]+#ui') регулярное выражение так, чтобы оно игнорировало ссылки типа "http://www.1234.ru", но работало только с ссылками типа "www.1234.ru", независимо от того, находится ссылка в начале текстовой строки или в её середине? Добавлено через 4 часа 36 минут У меня получился следующий вариант:
Я сделал это. Вот готовый вариант(добавил также замену email-адресов):
0
|
|||||||||||||||||||||
|
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 29
|
|
| 29.06.2015, 13:48 | |
|
попробовал ваш класс
![]() почему-то ссылки вида http://www.example.ru/somepage.html в итоге генерируются вот так : http://www.example.ru/somepage.html То есть - somepage.html (URI) не находится в ссылке.
0
|
|
|
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
|
|||||||
| 29.06.2015, 14:47 [ТС] | |||||||
1
|
|||||||
|
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 29
|
||||||
| 29.06.2015, 15:26 | ||||||
|
А вот я для себя сделал и с обертыванием почты тоже, без callback-а .
С дополнительным параметром $type на длинную(для админки делал) ссылку и короткую уже для сайта.
rawurlencode - кодирование ссылки, делал по этому примеру - http://lphp.ru/article/281.html
1
|
||||||
|
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
|
||||||||||||||||
| 02.07.2015, 21:33 [ТС] | ||||||||||||||||
0
|
||||||||||||||||
| 02.07.2015, 21:33 | |
|
Помогаю со студенческими работами здесь
16
Как найти в тексте все ссылки на картинки Во что "семантичней обернуть" ссылки на источники и др. материалы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1
У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\
А в самом низу файла-профиля. . .
|