Гм.. у меня на предпросмотре тоже экранируется: $header = "MIME-Version: 1.0\\n";
"\n"
Ну конечно же!!!
INSERT INTO ibf_posts (author_id,use_sig,use_emo,ip_address,post_date,icon_id,post,author_name,forum_id,topic_id,queued,attach_id,attach_hits,attach_type,attach_file,new_topic) VALUES ('1','1','1','127.0.0.1','1257447072','0',' <pre class="sh_sourceCode" rel="php"><span class="sh_string">"</span><span class="sh_escape">\n</span><span class="sh_string">"</span></pre> ','FatCat','3','22442','0','','','','','1')
_____________
Бесплатному сыру в дырки не заглядывают...
Надо раскрашенную обратную слешь преобразовывать в метасимвол перед вбиванием в базу...
_____________
Бесплатному сыру в дырки не заглядывают...
Йес!
Вроде бы все получилось небольшой правкой:
return '<pre class="sh_sourceCode" rel="'.$lng.'">'.str_replace("\\","& #092;",SHPHP::highlight($code, $language)).'</pre>';
_____________
Бесплатному сыру в дырки не заглядывают...
Теперь еще одна проблема:
Ввожу $
Подсвечивальщик делает %...
Форум, кстати, тоже это делает...
_____________
Бесплатному сыру в дырки не заглядывают...
FatCat
Да! Круто!) Теперь все как надо!
Цитата (FatCat @ 5.11.2009 - 15:01) |
Теперь еще одна проблема: Ввожу & #036; Подсвечивальщик делает %... Форум, кстати, тоже это делает... |
Так это из-за тех преобразований в файле sh_functions.php, функция highlighter($code, $lng) - самое начало. А не.. похоже это сам форум сначала преобразовывает, потому что даже в обычном тексте заменяется.. Может стоит в самом начале заменять амперсанды на & ;, чтобы не преобразовывались сущности, которые ввели вручную..?
Цитата (kirik @ 5.11.2009 - 13:08) |
Для меня: сделать подсветку строк, заключенных в кавычки (css: url('test'))
|
FatCat, обнови пожалуйста 2 языковых файла (прикрепил). В папке
/langs/ они лежать должны.
UPDЕще будет здорово, если получится убрать парсинг смайликов из блоков кода, а то как-то некрасиво выходит иногда, пишешь цикл, а он тебе улыбается в ответ
UPD2Еще, файл
sh_functions.php,
функция highlighter($code, $lng), добавь пожалуйста в массив
$convert еще пару для преобразования:
"\t" => ' ',
И еще некошерные дескрипторы бы заменить автоматом.
<? на
<?php
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 6.11.2009 - 00:38) |
И еще некошерные дескрипторы бы заменить автоматом. |
Думаю не стоит.. это уж пусть будет как запостили. Хотя это можно повесить уже на форматтер кода
Цитата (kirik @ 6.11.2009 - 01:49) |
обнови пожалуйста 2 языковых файла (прикрепил). |
Цитата (kirik @ 6.11.2009 - 01:49) |
добавь пожалуйста в массив $convert еще пару для преобразования |
Сделал.
Цитата (kirik @ 6.11.2009 - 01:23) |
похоже это сам форум сначала преобразовывает, потому что даже в обычном тексте заменяется.. Может стоит в самом начале заменять амперсанды на & ;, чтобы не преобразовывались сущности, которые ввели вручную..? |
Поищу, на каком этапе это происходит...
_____________
Бесплатному сыру в дырки не заглядывают...
Не нашел пока глюк с вводом метасимволов, но выявил и устранил конфликт с кодами
форума:
$tags = array(
'/<span class="sh_(?:[^"]+)">/',
'#</span>#'
);
$txt = preg_replace($tags, null, $txt);
Это убило все закрывающие спаны, в том числе от других кодов.
Заменил регулярку:
$txt = preg_replace( '#(<span class="sh_(?:[^"]+)">)(.+?)(</span>)#is', "\\2", $txt );
_____________
Бесплатному сыру в дырки не заглядывают...
Цитата (FatCat @ 6.11.2009 - 05:56) |
Сделал. |
Спасибо!
Цитата (FatCat @ 6.11.2009 - 09:25) |
Заменил регулярку |
А зачем там сами тэги в скобках? Я думаю лучше убрать - оптимальнее будет (они ведь все равно нигде не используются).
Зачем изобретать колесо? Тут верно подметил Joker, GESHI самый лучший вариант подсветки кода, правда его нужно чуток подлатаь + делать умный кеш.
На своём стареньком тестовом блоге, прикрутил вообще JS подсветку.
ПРИМЕР
Цитата (Семён @ 7.11.2009 - 11:52) |
Тут верно подметил Joker, GESHI самый лучший вариант подсветки кода |
Попробуй встроить гешу в форум со всеми форумными подменами символов при вводе и редактировании - и окажется, что проще с нуля новый подсвечивальщик писать, чем гешу использовать...
_____________
Бесплатному сыру в дырки не заглядывают...
СемёнГеши нифига не гибкий.. И когда я писал этот подсвечивальщик я не изобретал колесо, а просто сверлил новые дырки, чтобы оно подошло к
php - это
php порт GNU syntax highlighter'а.
А JS подсветка да, прикольно. Если ты сначала трэд почитаешь, то там предлагается сделать JS, но ты прикинь сколько ресурсов эта подсветка будет есть у юзера при наличии хотя бы пары-тройки больших листнингов кода на странице.. а если еще и несколько страниц отроешь - мой ноут так вообще повесиццо
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.