|
|
|
(php) Символ табуляции ломает регулярное выражение.
|
|||
|---|---|---|---|
|
#18+
Добрый день. Пытаюсь сделать у себя на сайте вывод программного кода. Сам текст статьи записывается с использованием html-тегов. Т.е. при написании статьи я вручную ввожу такие тэги как <p>...</p> и т.п. (мне так удобнее, чем с bb-кодами и визуальными редакторами). Для отображения кода, мне необходимо что бы весь текст внутри блоков <code>...</code> был обработан функцией htmlspecialchars. Причем сами теги <code> и </code> обрабатываться не должны. Плюс ко всему тег <code> имеет css-свойство class. Для всего это я использую функцию preg_replace_callback Перед сохранением в БД производится обработка текста: Код: php 1. 2. 3. 4. 5. 6. 7. 8. И все прекрасно работает. Но если внутри тегов<code>...</code> будет символ табуляции (переноса строк), функция перестает обрабатывать их содержимое. Я понимаю, что проблема где то в регулярке, но имею очень мало опыта в их составлении. Подскажите, как это исправить? Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 09:11:19 |
|
||
|
(php) Символ табуляции ломает регулярное выражение.
|
|||
|---|---|---|---|
|
#18+
Все решилось. Уже помогли. Вместо (.*) надо было использовать ([\s\S]*?) Тогда все норм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 10:03:09 |
|
||
|
(php) Символ табуляции ломает регулярное выражение.
|
|||
|---|---|---|---|
|
#18+
символ табуляции это не символ переноса строки. Множество "." вроде как включает в себя пробелы и символ табуляции, а вот CR и LF нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 10:19:28 |
|
||
|
(php) Символ табуляции ломает регулярное выражение.
|
|||
|---|---|---|---|
|
#18+
и в чем вообще смысл этого кода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 10:21:07 |
|
||
|
(php) Символ табуляции ломает регулярное выражение.
|
|||
|---|---|---|---|
|
#18+
Hettсимвол табуляции это не символ переноса строки. Множество "." вроде как включает в себя пробелы и символ табуляции, а вот CR и LF нет. Да, неправильно выразился, вы правы. Hettи в чем вообще смысл этого кода? Комментарий. который добавляет пользователь должен быть безопасным т.е. обработан функцией htmlspecialchars. Но при этом должна быть возможность вставить в него кусочек программного кода. И что бы все отображалось правильно, необходимо из всего комментария интерпретировать только коды <code class="*язык*">...</code> Как то так, до более простого способа не додумался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2012, 20:47:41 |
|
||
|
(php) Символ табуляции ломает регулярное выражение.
|
|||
|---|---|---|---|
|
#18+
как вариант, использовать символы которые не эскейпятся, например [] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2012, 21:53:37 |
|
||
|
(php) Символ табуляции ломает регулярное выражение.
|
|||
|---|---|---|---|
|
#18+
Иначе рискуете получить XSS уязвимость ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2012, 21:54:09 |
|
||
|
(php) Символ табуляции ломает регулярное выражение.
|
|||
|---|---|---|---|
|
#18+
А можно поподробнее? Что такое xss? а [] имеете в виду bb-коды? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2012, 22:22:56 |
|
||
|
(php) Символ табуляции ломает регулярное выражение.
|
|||
|---|---|---|---|
|
#18+
xss в гугле наберите. Я тут хочу сказать, что возможно при обработке тегов <code> есть веростность, что вы составите такое выражение, которое позволит внедрить свой JS код на страницу в виду выборочной обработке содержимого с помощью эсекйп функции. (хотя опять же смотря как вы это реализуете). Это я сделал вывод исходя из фразы авторДля отображения кода, мне необходимо что бы весь текст внутри блоков <code>...</code> был обработан функцией htmlspecialchars. Причем сами теги <code> и </code> обрабатываться не должны. хотя по сути если вы будете использовать стороннюю библиотеку, то остается полагаться только на нее, в данном случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2012, 22:28:58 |
|
||
|
|

start [/forum/topic.php?fid=23&gotonew=1&tid=1465217]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
287ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 595ms |

| 0 / 0 |
