За последние 24 часа нас посетили 62955 программистов и 1741 робот. Сейчас ищут 805 программистов ...

функция higlight_string()

Тема в разделе "Прочие вопросы по PHP", создана пользователем dimalogin, 8 янв 2008.

  1. dimalogin

    dimalogin Активный пользователь

    С нами с:
    24 фев 2007
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Москва
    На своей домашней странице я использую эту функцию (higlight_string()) для подсветки кода. К примеру
    PHP:
    1.  
    2. highlight_string('
    3. <?php
    4. <script type="text/javascript">
    5. //<![CDATA[
    6. function checkName(field) {
    7.     var pattern = /^[a--яА-Яё][\wа-яА-Яё -]*$/i;
    8.     if(pattern.test(field.value)) {return true;}
    9.     else {return false;}
    10. }
    11. //]]>
    12. </script>
    13. ?>'
    14. );
    15.  
    Почему эта функция убирает все обратные слэши?, результат хорошо виден на моей странице - http://www.dmitryponomarev.ru/main/code ... ds.js=show
    не помагает ничего, в итоге подсветку для js не удается сделать, где используется регулярное выражение, для php
    прокатывает, т.к. там регулярное выражение в строке.
     
  2. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    баг. Запостите в http://bugs.php.net/
    А лучше за одно и пофиксить ;)
     
  3. Anonymous

    Anonymous Guest

    А почему функция подсветки php кода должна корректно подсвечивать js ? )
     
  4. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    Горбунов Олег
    согласен, но даже при передаче ей неккоректного PHP кода
    PHP:
    1. <?
    эта функция не должна терять символы
     
  5. dimalogin

    dimalogin Активный пользователь

    С нами с:
    24 фев 2007
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Москва
    Эта функция используется лишь как основа, т.к. по-сути ключевые слова и синтаксис похож, у меня написана доработка некоторых моментов, к примеру, убираются php тэги для создания иллюзии подсветки javascript, но я не ожидал, что она именно ТЕРЯЕТ символы!!! Придется чем-то backslash заменять на время, а потом восстанавливать (наверно на этом форуме так и сделано?) ведь здесь backslash не теряется в
    PHP:
    1.  <?php \test
    а выполните:
    PHP:
    1.  
    2. <?php
    3. highlight_string('<?php \test');
    4. highlight_string('<?php \\\\\\test');
    5. ?>
    6.  
     
  6. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Это не корректный PHP код. Чтобы функция работала правильно, необходимо передавать её корректный код.
    http://bugs.php.net/bug.php?id=39783