Понедельников НЕТ!
Регистрация или вход Регистрация или вход Избранное на этом сайте | Главная | Анкета | Рекомендовать | Обратная связь | В избранное | Сделать домашней
Скачать SSDForums
Скачать SSDForums 1.0.1 Скачать SSDForums 1.0.1
Скачать SSDForums 1.0.1 SP1 Скачать SSDForums 1.0.1 SP1
Скачать SSDForums 1.0.1 SP2 Скачать SSDForums 1.0.1 SP2
SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro
SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro
Jewelry Сase Team
Скачать Ruby Chat 0.1.1 Скачать Ruby Chat 0.1.1
Меню
Главная
Форум
Магазин цифровых товаров

Новости
Подписка на новости
Темы новостей
Добавить новость

Каталог файлов
Карта файлового архива
Публикации

Опросы
Анкета пользователя
Чат

BestMaker
Викторина
Архив новостей
Карманный оракул
Поиск по сайту с помощью Яндекс
Поиск по сайту с помощью Google
Фото дня
Для души
Погода на 3 дня
IndexCat
IndexTop
Map_Pages
Форум -> PHP, JS, MySQL -> Помогите с PHP
Помогите с PHP
wicked Дата: 21.02.2008, в 11:11 | Сообщение №1
wicked
Странник
Пользователь №: 37
Сообщений: 7

Пишу раскраску кода 1С
и столкнулся с проблемой, как постветить зарезервированные слова?

вот код
PHP - Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
function encode_c($text) {
    
$start_html = "<fieldset style=\"width: 95%; overflow: auto;\"><legend style=\"color: #323e5b;\">code_1Cv7</legend><div style=\"margin: 3px;\">";
    
$end_html = "</div></fieldset>";
    
$match_count = preg_match_all("#\[1cv7\](.*?)\[/1cv7\]#si", $text, $matches);
    for (
$i = 0; $i < $match_count; $i++) {
        
$after_replace = trim($matches[1][$i]);
        
$after_replace = str_replace("<", "<", $after_replace);
        
$after_replace = str_replace(">", ">", $after_replace);
        
$after_replace = str_replace(""", '"', $after_replace);
        $after_replace = str_replace("'", "'", $after_replace);
        $after_replace = str_replace("&", "&", $after_replace);
        $after_replace = preg_replace("/
        $after_replace = (substr($after_replace, 0, 2) != "<?") ? "<?php".$after_replace."" : $after_replace;
        $after_replace = (substr($after_replace, -2) != "?>") ? "".$after_replace."?>" : $after_replace;
        ob_start();
        highlight_string($after_replace);
        $after_replace = ob_get_contents();
        ob_end_clean();
        $text = str_replace("[1cv7]".$matches[1][$i]."[/1cv7]", "".$start_html."".$after_replace."".$end_html."", $text);
    }
    $text = str_replace("<?php", "", $text);
    $text = str_replace("?>", "", $text);
    //доработка цветов для 1С
    $text = str_replace("#DD0000", "#000000", $text);//красн на черн
    $text = str_replace("#007700", "#DD0000", $text);//зелн на красн
    $text = str_replace("#FF8000", "#007700", $text);//желт на зелн

    $str = array("'
(\Если)'si", "'(\Тогда)'si", "'(\ИначеЕсли)'si", "'(\Иначе)'si", "'(\КонецЕсли)'si",
     "'
(\Для)'si", "'(\Каждого)'si", "'(\Из )'si", "'(\По)'si", "'(\Пока)'si", "'(\Цикл)'si",
     "'
(\КонецЦикла)'si", "'(\Процедура)'si", "'(\Функция)'si", "'(\КонецПроцедуры)'si", "'(\КонецФункции)'si",
     "'
(\Перем)'si", "'(\Перейти)'si", "'(\Возврат)'si", "'(\Продолжить)'si", "'(\Прервать)'si", "'(\И)'si",
     "'
(\Или)'si", "'(\Не)'si", "'(\Попытка)'si", "'(\Исключение)'si", "'(\ВызватьИсключение)'si",
     "'
(\КонецПопытки)'si", "'(\Новый)'si", "'(\Выполнить)'si", "'(\Экспорт)'si", "'(\Неопределено)'si",
     "'
(\ИСТИНА)'si", "'(\ЛОЖЬ)'si");
    $replace = array_fill(0, count($str), "<span style='
color: #DD0000'>\\1</span>");
    
$text = preg_replace($str, $replace, $text);
    return
$text;
?>


Он раскрашивает, но не правильно :( Как сделать так чтобы он менял не все подрят а только при ТОЧНОМ совпадении.
Спасибо.

Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!


Главная | Форум | Новости | Подписка на новости | Темы новостей | Добавить новость | Каталог файлов | Карта файлового архива | Публикации | Опросы | Анкета пользователя | Чат | BestMaker | Викторина | Архив новостей | Карманный оракул | Поиск по сайту с помощью Яндекс | Поиск по сайту с помощью Google | Фото дня | Для души | Погода на 3 дня | IndexCat | IndexTop | Map_Pages | Весь Оракул


Генерация страницы: 0.054 сек. и 17 запросов к базе данных за 0.025 сек.
Web site engine code is Copyright © 2006 by SLAED CMS. All rights reserved.