Войти
Зарегистрироваться
Пытошная Forum A
Новые темы (0)   Все темы

evgen
Вопрос.  21.11.2014 15:26


Атомик, вот часть моего коммента в ветке в МА

-"­«­ ­ ­ ­evgen ­ ­ ­21.11.2014­ 15:23 ­ ­ ­# ­ ­ ­Скрыть ­ ­ ­»­

Это точно.

Вспомнил своего Первого Просветителя!

Мы сдали экзамены в пожарное училище в конце августа, а присяга 1 октября. Необходимо всего 150 человек.Это дивизион. А нас почти 300 харь. Начальство начало изгонять лишних даже не за провинность, а за оплошность.Одного выгнали за то, что на одном кеде был шнурок развязан. Короче над нами зверствовали.

И вот в начале сентября человек 20-ть, включая и меня, отправили долбить бетонный фундамент оставшийся от какого то здания. Дело происходило на территории училища.Начало сентября, день, жарко."­....

Вы мне можете объяснить почему в тексте есть три ссылки? Я просто печатаю и всё, а почему то иногда получаются ссылки и они ведут в никуда. Ничего не понимаю.


   
«   ggorlin.com   21.11.2014 15:38   #   Скрыть
Похоже, цензор-редактор реагирует на точку без пробела.

Проверяем: Это.нессылка

Тест на "тупость" сдан на "отлично"!
      
«   evgen   21.11.2014 15:40   #   Скрыть

Ага, понял, спасибо. Проверяю

Это.не ссылка

Это. ­ не ссылка.

Непонятно.

         
«   Atomic   21.11.2014 16:04   #   Скрыть

Пока Вы тестили, я исправить успел.

            
«   evgen   21.11.2014 16:11   #   Скрыть

Понял.

      
«   Atomic   21.11.2014 15:47   #   Скрыть

Никогда бы не назвал цензором систему, которая расставляет ссылки, но да, Вы правы - система реагирует на отсутствие пробела после точки: я научил её воспринимать эти вещи как ссылки.

Осознал и учёл. Исправил. Больше не должна.

Ссылкой считается любое слово, затем точка, затем любое слово из 2-6 букв латынскага языку или русские буковки "­РФ"­ со всяким возможным мусором сзади. Если будет захватывать много лишнего, изменим и сделаем обязательным префикс http (сейчас это дополнительная опция).

Если кто-то разбирается в регулярных выражениях лучше меня и может дать более качественный код, я буду только рад, ибо сам в них не разбираюсь совершенно. Вот эта строка должна опознать ссылку:

$s=preg_replace_ca­llback("­/(?<­=<­p>­|[\s]{1})­(?<­!=\"­)(((https?|ftp):­\\/\\/)?([-a-zA-Zа-яА­-ЯёЁ_0-9.]+\\.[a-zA-Z­рфРФ]{2,6}))[^ '\"­<­>­\r\n\t]*(?!<­\/a>­)­/"­, 'linksPerenosCall­Back' , $s);

Предыдущий вариант я где-то спёр, но он не понимал ссылки в доменной зоне .РФ и доменные зоны, длина которых превышала 3 символа (.center, .info). А так как никто в мире этого языка не понимает (что тщательно скрывается всеми программистами), то пришлось писать самому. А когда пишешь неизвестный текст на незнакомом языке, всё получается легко и приятно. Хуже, когда у этого языка уже есть правила - тут не избежать ошибок.

         
«   Atomic   21.11.2014 16:02   #   Скрыть

Кстати, тест!

ссылка.рф

Так и думал! Осторожнее со ссылками без http: они вставляются как относительные и, соответственно, дадут ошибку. Потом подумаю, как это можно исправить, а пока так.

            
«   Atomic   21.11.2014 19:14   #   Скрыть

Всё, исправил. Теперь правильно работают и ссылки, в которых нет "­http://"­ в начале.

 




Диспуты

Пытошная

Правила форума



О клубе
В клубе сейчас находится 0 человек:





debug
outputNode