|
|
|
| найти в тексте слово, начинающееся на @ и состоящее из разных символов. далее заменить на ссылку с этим же именем | |
|
|
|
|
|
|
|
для: flaers
(07.02.2010 в 10:53)
| | есть идеи?
к примеру есть текст:
отсюда выделить @flaers и записать его в виде ссылки типа <a href='flaers'>@flaers</a>
спрашиваю так как никак не могу осилить регуляторные выражения | |
|
|
|
|
|
|
|
для: flaers
(07.02.2010 в 14:22)
| |
$text = " ... @flares ...";
$res = preg_replace("/\\@([\\S]+)/", "<a href='\\1'>\\1</a>", $text);
|
| |
|
|
|
|
автор: Тень& (07.02.2010 в 18:33) |
|
|
для: Trianon
(07.02.2010 в 15:28)
| | Что за чушь? (c)
Зачем Вы экранируете @? Кто будет апостроф экранировать? | |
|
|
|
|
|
|
|
для: Тень&
(07.02.2010 в 18:33)
| | Я уже как-то писал, что более мерзотным (по уровню неортогональности) ,чем RegExpressions, языком, считаю разве только язык perl, да еще может быть микропроцессорную архитектуру Intel.
Запоминать, какой из символов является специальным, а какой нет, в этом ключе - значительно выше моих сил.
Чем бесполезно (потому что никакой внутренней логики и красоты в семантике этого языка нет, а значит я все равно это забуду) тратить время на выяснение этого вопроса в мануале, я лучше заэкранирую любой подозрительный для меня символ.
И конечно же не стану попрекать этим других.
Апостроф? В шаблоне нет ни одного апострофа.
А в php-строке правила экранирования, к моему великому счастью, довольно прозрачны.
И нужды в неразумной избыточности - нет. Экранирование слэша перед единицей - избыточность разумная.
Надо ли дополнительно оговаривать, что это всё на мой взгляд? | |
|
|
|
|
автор: Тень& (07.02.2010 в 19:40) |
|
|
для: Trianon
(07.02.2010 в 19:37)
| | Я имею ввиду HTML-экранирование | |
|
|
|
|
|
|
|
для: Тень&
(07.02.2010 в 19:40)
| | В URL открытых апострофов по идее попадаться не должно.
По хорошему, все должны быть за rawurlencode'ны
Да и htmlspecialchar'ить этот самый flaers нужно в двух местах, проще предположить, что кто-то эту операцию уже проделал за. Ровно там где надо. | |
|
|
|
|
|
|
|
для: Trianon
(07.02.2010 в 20:19)
| | > По хорошему, все должны быть за rawurlencode'ны
То есть Вы за автора домысливаете, что значения после "@" будут обязательно URL-кодированными? Из его примера это не видно.
> Да и htmlspecialchar'ить этот самый flaers нужно в двух местах, проще предположить, что кто-то эту операцию уже проделал за.
Я как-то тут похожий код размещал, Вы придрались именно так, как сейчас я. Я злопамятный :) | |
|
|
|
|
|
|
|
для: Тень&
(07.02.2010 в 20:24)
| | Значит, код был непохож.
Пред тем, как выполнять urlencode , сперва стоило бы решить вопрос с контекстом того что за @
Автор его тоже не оговорил.
Я выбрал - до первого пробела. Это куда более болезненный шаг.
Я б еще понял тапки в эту точку.
И последнее предупреждение.
Мне всё равно, злопамятный Вы или нет.
Но не всё равно - тролль ли.
При очередном намеке я просто внесу Вас в список. Свой личный.
И Никакого конструктивного диалога тогда у нас с Вами не выйдет. | |
|
|
|
|
|
|
|
для: Trianon
(07.02.2010 в 20:39)
| | Я просто сменю username, если мне вдруг понадобится Вас потроллить. | |
|
|
|
|
|
|
|
для: Тень&
(07.02.2010 в 20:45)
| | Ни на минуту не усомнюсь.
Но вот беда, новички у меня в другом списке :) | |
|
|
|
|
автор: .heed (07.02.2010 в 21:17) |
|
|
для: Trianon
(07.02.2010 в 20:39)
| | >мерзотным (по уровню неортогональности) ,чем RegExpressions, языком, считаю разве только язык perl
было где-то в задворках сознания мысль, как-то назвать бОльшую смысловую нагрузку при меньшем колличестве символов, Но так я-бы точно не назвал :))
Кому-как , мне в RegExp более-менее просто всё запомнилось.
Во всяком случае там к каждым таким моментам достаточно простое и точное описание
, в отличии от тысячи трудновыговариваемых функций и констант php ,) кстати sql тоже не подарок
а в перл как мне кажется просто то что вместо if (1) func(param); записать func param if 1;
, и области видимости.
но тоже всяких классов целые кучи, хоть и понятнее там oop и просще.
но ооп я вот точно так-же и назвал :) а говорят что мол для лучшей возможности записи человеческой логики. | |
|
|
|
|
|
|
|
для: .heed
(07.02.2010 в 21:17)
| | Познакомся с MVC, паттернами проектирования, фреймворки типа Zend Framework, Kohana etc. Может изменишь своё мнение.
А PCRE просто упрощают жизнь в простых задачах. А в сложных задачах они превращают код в говно. Пример тому - Smarty. | |
|
|
|
|
|
|
|
для: Тень&
(07.02.2010 в 21:24)
| | Сложные задачи они просто сами по себе так решаемые, у меня только иногда бывает желание что-то сделать на более низком уровне чем regExp, потомучто иногда казалось-бы простые вещи решаются бывает только с его хитро-нелогичной логикой, а если поразмыслить на уровне байтов можно было-бы сделать просще.
Сейчас глянул краем глаза сейчас что такое MVC, и опять впечатление что почитал книгу бутча по c++ :)
мне кажется слишком сложным такое разделение "Модель-Вид-Контроллер", щаблонизаторы кажутся медленными, наверное просто в силу привычек, просто тянет сделать кучу функций
, единственное чем заманчиво, это упорядоченное разделение данных и кода более-менее соответственно задачам. Некие оболочки, в которые завёрнуты функции и данные, в которые лишний раз можно не заглядывать.
Но пока всётаки на другую модель склоняюсь, файлы с переменными , функциями и большими такими описаниями всего, чтобы не забыть.) Если выработать такой более-менее свой постоянный стиль, то бывает даже легче ориентироваться в таком, Только пока всё-равно всё-время приходится читать чего-там за параметры у меня в забытых функциях :)
А может-быть просто я не понял всех этих классов и интерфейсов потомучто так и не встречал ещё задачу где оправданно было-бы их использование , нужно наверное делать свой фрэймворк , одновременно в двух разных стилях, чтобы во всём этом разобраться.
Чужими пользоваться это нужно изучать их запоминать много байт :) я до сих пор не знаю как называются флаги-константы например для preg_match_all() пишу 1|2|4, или лезу в мануал и обнаруживаю там что offset пишется с двумя F :) | |
|
|
|
|
автор: Тень& (07.02.2010 в 19:42) |
|
|
для: Trianon
(07.02.2010 в 19:37)
| | > Экранирование слэша перед единицей - избыточность разумная.
Я не спорю. Напротив -- поддерживаю. | |
|
|
|
|
|
|
|
для: Тень&
(07.02.2010 в 19:42)
| | Спор ни о чем. Предложенный вариант выражения работает.
Что еще надо. Стиль написания дело вкуса. Как говорится "на вкус и цвет товарищей нет". | |
|
|
|
|
|
|
|
для: big-trot
(07.02.2010 в 22:21)
| | Я спорил не с тобой :) Мы ищем совершенство, товарищ. А вот с позицией
> Предложенный вариант выражения работает. Что еще надо
не согласится даже Trianon, которого ты защищаешь :) | |
|
|
|
|
|
|
|
для: Trianon
(07.02.2010 в 15:28)
| | к сожалению данная конструкция работает только если текст равен этому слову и всё( помогите сделать замену этого слова если оно находится в небольшом тексте и разделяется пробелами | |
|
|
|
|
|
|
|
для: flaers
(14.02.2010 в 00:12)
| | >к сожалению данная конструкция работает только если текст равен этому слову и всё(
>помогите сделать замену этого слова если оно находится в небольшом тексте и разделяется пробелами
Вообще-то я проверял пример, перед тем, как постить.
И теперь был вынужден потратить еще 10 минут на повторную проверку.
Тестовым входным потоком послужил полный текст этого топика.
Конструкция работает. Как пример. Выделяя фрагменты в том числе и среди такого текста.
Ничего другого, кроме как быть примером, ей в задачу не вменялось. | |
|
|
|
|
|
|
|
для: Trianon
(14.02.2010 в 00:26)
| | может ли повлиять на работу этого скрипта выполнение функции htmlspecialchars() до поиска слова? | |
|
|
|
|
|
|
|
для: flaers
(14.02.2010 в 11:31)
| | в каком смысле?
В этом скрипте нет такой функции. | |
|
|
|
|
|
|
|
для: Trianon
(14.02.2010 в 12:47)
| | здесь я не написал но обработчике текста то она присутствует | |
|
|
|
|
|
|
|
для: flaers
(14.02.2010 в 17:20)
| | тогда на входе уже совсем не тот текст, про который Вы спрашивали. | |
|
|
|
|
|
|
|
для: Trianon
(14.02.2010 в 18:17)
| | ладно давайте начнём сначала, чтобы не запутать
первым делом вы должны из строки:
... @row ...
выбрать row и записать это значение в переменную | |
|
|
|
|
|
|
|
для: flaers
(14.02.2010 в 18:36)
| | >ладно давайте начнём сначала, чтобы не запутать
>первым делом вы должны
Пожалуй, на этой торжественной ноте мы и закончим. | |
|
|
|
|
|
|
|
для: Trianon
(14.02.2010 в 20:00)
| | ну во-первых вы меня не правильно поняли.
значит вы не поможете человеку написать скрипт длинной в одну строку?
и мне придётся опять ждать несколько дней и клянчить у народа маленький скриптик? | |
|
|
|