Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Подсветка синтаксиса PHP

Сообщения:  [1-10]    [11-20]  [21-21] 

 
 автор: Unreal   (04.12.2007 в 13:54)   письмо автору
 
   для: kasmanaft   (04.12.2007 в 12:06)
 

если пропадут идеи, то можно посмотреть на уже готовый скрипт для проверки синтаксиса :)

http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi

   
 
 автор: KPETuH   (04.12.2007 в 12:42)   письмо автору
 
   для: lirik   (04.12.2007 в 12:00)
 

вопрос мой проистекал из ваших ответов и вопросов на Код предложенный вам как решение...

   
 
 автор: Faraon   (04.12.2007 в 12:09)   письмо автору
 
   для: lirik   (04.12.2007 в 12:00)
 

Так чем Вам тогда полный пример kasmanaft`а не нравится?

<?php
$text 
'юсер пишет например вот такое сообщение
<code>
<?php
// тут php код
$a = strpos($m, "<code>");
$b = strpos($m, "</code>");
?>
</code>
вопрос : как подсветить код'
;

echo 
preg_replace("#<code>((?:<code>.*?</code>|.)*?)</code>#ise""highlight_string(stripslashes('\\1'), 1)"$text);

?>

   
 
 автор: kasmanaft   (04.12.2007 в 12:06)   письмо автору
 
   для: lirik   (04.12.2007 в 10:46)
 

>насколько я понял это вырожение предотврощает ошибку при использовании <code></code> , а если между тегами будет один такой тег то всё заглючит ещё больше чем сначала , или нет ???

Нет, хуже не будет (уже некуда :) ). Вы попробуйте, чего гадать.
В конце концов нажмет ваш пользователь на кнопочку "редактировать" и отредактирует как надо.

Попробуйте так:
echo preg_replace("|<code>(.*?)</code>|ise", "highlight_string(stripslashes('\\1'), 1)", $text);
и так:
echo preg_replace("#<code>((?:<code>.*?</code>|.)*?)</code>#ise", "highlight_string(stripslashes('\\1'), 1)", $text);

Поэксперементируйте, выберите, что лучше..

   
 
 автор: lirik   (04.12.2007 в 12:00)   письмо автору
 
   для: KPETuH   (04.12.2007 в 10:51)
 

>ответь те пожалуйста в чем смысл делать вот так пользователю:
>
>[kode]
>...............
>[kode]
>чегото есче.....
>[/kode]
>.................
>[/kode]

по мойму вопрос не умесный , и с чево вы взяли этот код ? , в своём вопросе я для примера привёл код

ОБЫЧНЫЙ ТЕКСТ который не надо подсвечивать
<code>
...тут пхп код...
$a=strpos($m,"<code>");
$b=strpos($m,"</code>");
...тут пхп код...
</code>
ОБЫЧНЫЙ ТЕКСТ

или вы это тоже считаете ошибкой пользователя ???

   
 
 автор: KPETuH   (04.12.2007 в 10:51)   письмо автору
 
   для: lirik   (04.12.2007 в 10:46)
 

ответь те пожалуйста в чем смысл делать вот так пользователю:

[kode]
...............
[kode]
чегото есче.....
[/kode]
.................
[/kode]

помоему просто тупо удалять все включения тегов [kode] и [/kode] в тексте между двумя крайними тегами... так как скорее всего это будет ошибка пользователя...

   
 
 автор: lirik   (04.12.2007 в 10:46)   письмо автору
 
   для: kasmanaft   (04.12.2007 в 10:09)
 

>>Попробуйте вот такое выражение: "#<code>((?:<code>.*?</code>|.)*?)</code>#ise"

Извените , я уже говорил что не силен в них , но насколько я понял это вырожение
предотврощает ошибку при использовании <code></code> , а если между тегами будет один такой тег то всё заглючит ещё больше чем сначала , или нет ???

   
 
 автор: lirik   (04.12.2007 в 10:33)   письмо автору
 
   для: kasmanaft   (04.12.2007 в 10:24)
 

>>Тогда зачем вы эти теги вводите?

чтобы поместить код в рамку и использовать другой шрифт , а также если если пользователь спросит чтото конкретно про этот тег например :
<пример>А что если в теге <?php не писать php ? </пример>
тут теги не закрыты , и весь остальной текст будет разноцветным ?

   
 
 автор: kasmanaft   (04.12.2007 в 10:24)   письмо автору
 
   для: lirik   (04.12.2007 в 10:19)
 

>> но насколько я знаю функция highlight_string считает пхп кодом тот текст который заключон в <?php ?> или <? ?>
Да, верно. Тогда зачем вы эти теги вводите?

>> это рег.вырожение ? , я не силён в них , вы не могли бы написать приблезительный код
Просто замените рег. выражение из кода, что я приводил наверху на это.

   
 
 автор: lirik   (04.12.2007 в 10:19)   письмо автору
 
   для: kasmanaft   (04.12.2007 в 10:09)
 

>Вообще-то, по сути, вы эти теги вводите как для того, чтобы отделить простой текст от php кода. То, что находится между <code> и </code> - это php код. А не то, что между <?php и ?> !

поправте меня если я неправ , но насколько я знаю функция highlight_string считает пхп кодом тот текст который заключон в <?php ?> или <? ?> , а всё остальное хтмл кодом ?!
пример:

echo phpinfo();
<?php
 
echo phpinfo();
?>



// <!--теги  не используются-->
 echo phpinfo();



>Попробуйте вот такое выражение: "#<code>((?:<code>.*?</code>|.)*?)</code>#ise"

это рег.вырожение ? , я не силён в них , вы не могли бы написать приблезительный код

   

Сообщения:  [1-10]    [11-20]  [21-21] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования