Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подсветка кода используя preg_replace

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
-=1100=-
Отправлено: 20 Июня, 2012 - 08:12:15
Post Id



Частый гость


Покинул форум
Сообщений всего: 156
Дата рег-ции: Май 2007  
Откуда: Город Святого Петра


Помог: 0 раз(а)

[+]


Доброе утро.

Есть ли возможно реализовать что-то вроде этого:
PHP:
скопировать код в буфер обмена
  1.  
  2. $txt="Тут я пишу много текста. Потом идет <?PHP echo('test'); ?> и возможно опять много текста";
  3. preg_replace("!<\?php(.*?)\?>!si",highlight_string("\\1"),$str);
  4.  
  5.  


ну и что бы этот код php в итоге был подсвечен.

А то у меня не как не получается.


-----
INSPIRON |6400
 
 Top
fdr21
Отправлено: 20 Июня, 2012 - 08:56:45
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Июнь 2012  


Помог: 5 раз(а)




-=1100=- пишет:
Доброе утро.

Есть ли возможно реализовать что-то вроде этого:
PHP:
скопировать код в буфер обмена
  1.  
  2. $txt="Тут я пишу много текста. Потом идет <?PHP echo('test'); ?> и возможно опять много текста";
  3. preg_replace("!<\?php(.*?)\?>!si",highlight_string("\\1"),$str);
  4.  
  5.  


ну и что бы этот код php в итоге был подсвечен.

А то у меня не как не получается.


можете просто использовать:
highlight_string($txt)
код PHP подсвечивается!
 
 Top
-=1100=-
Отправлено: 20 Июня, 2012 - 09:07:52
Post Id



Частый гость


Покинул форум
Сообщений всего: 156
Дата рег-ции: Май 2007  
Откуда: Город Святого Петра


Помог: 0 раз(а)

[+]


Неее так не пойдет.
Я забыл упомянуть что текст который перед и после php кода заключен в теги.


-----
INSPIRON |6400
 
 Top
Мелкий Супермодератор
Отправлено: 20 Июня, 2012 - 09:15:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




В общем же случае - preg_replace_callback


-----
PostgreSQL DBA
 
 Top
fdr21
Отправлено: 20 Июня, 2012 - 09:29:39
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Июнь 2012  


Помог: 5 раз(а)




Тогда нужно исправить ошибки!
так вроде бы работает
PHP:
скопировать код в буфер обмена
  1.  
  2. $txt= "Тут я пишу много текста. Потом идет <?PHP echo('test'); ?> и возможно опять много текста";
  3. // Наша готовая строка
  4. $pods_stroka =  preg_replace('#(<\?php.*?\?>)#ie', "highlight_string('$1', 'true')",$txt);
  5. // если нужно можно вывести результат!
  6. echo $pods_stroka;

(Отредактировано автором: 21 Июня, 2012 - 11:43:42)

 
 Top
-=1100=-
Отправлено: 21 Июня, 2012 - 08:56:52
Post Id



Частый гость


Покинул форум
Сообщений всего: 156
Дата рег-ции: Май 2007  
Откуда: Город Святого Петра


Помог: 0 раз(а)

[+]


Цитата:

Тогда нужно исправить ошибки!
так вроде бы работает


А у меня не работает. Текст отображает, а php код вообще не как.

Даже после полного копирования примера.


-----
INSPIRON |6400
 
 Top
DlTA
Отправлено: 21 Июня, 2012 - 09:12:13
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




все работает
PHP:
скопировать код в буфер обмена
  1. echo highlight_string('<b>123</b> <?=$a="текст"."другой текст"?>');
 
 Top
-=1100=-
Отправлено: 21 Июня, 2012 - 09:21:46
Post Id



Частый гость


Покинул форум
Сообщений всего: 156
Дата рег-ции: Май 2007  
Откуда: Город Святого Петра


Помог: 0 раз(а)

[+]


Так то и у меня работает.
Цитата:
echo highlight_string('<b>123</b> <?=$a="текст"."другой текст"?>');


Я про

Цитата:

$txt= "Тут я пишу много текста. Потом идет <?PHP echo('test'); ?> и возможно опять много текста";
// Наша готовая строка
$pods_stroka = preg_replace('#(<\?php.*?\?>)#e', "highlight_string('$1', 'true')",$txt);
// если нужно можно вывести результат!
echo $pods_stroka;


У меня выдает просто
Цитата:
Тут я пишу много текста. Потом идет и возможно опять много текста

(Отредактировано автором: 21 Июня, 2012 - 09:22:13)



-----
INSPIRON |6400
 
 Top
DlTA
Отправлено: 21 Июня, 2012 - 09:23:43
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




а нафига такие сложности?
 
 Top
-=1100=-
Отправлено: 21 Июня, 2012 - 09:43:24
Post Id



Частый гость


Покинул форум
Сообщений всего: 156
Дата рег-ции: Май 2007  
Откуда: Город Святого Петра


Помог: 0 раз(а)

[+]


DlTA пишет:
а нафига такие сложности?



Есть файлы с примерной структурой содержания:

<h1>Заголовок</h1>
<p>Текст</p>
<ul>
<li>Списки</li>
</ul>
<?php echo("php код разного размера");>
<p>И еще некий текст</p>

Функция file_get_contents() читает этот файл и отображает его содержимое через функцию htmlspecialchars_decode(). В итоге, в идеале, получается отформатированный текст с подсветкой php кода.


-----
INSPIRON |6400
 
 Top
просто даня
Отправлено: 21 Июня, 2012 - 10:51:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Март 2012  
Откуда: sev-kav, budennovsk


Помог: 1 раз(а)

[+][+]


если взять код из файла то так:

и будет тебе весь файл с подсветкой показывать в том месте хде это написано!
 
 Top
fdr21
Отправлено: 21 Июня, 2012 - 11:00:20
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Июнь 2012  


Помог: 5 раз(а)




Цитата:
А у меня не работает. Текст отображает, а php код вообще не как.

$txt= "Тут я пишу много текста. Потом идет <?PHP echo('test'); ?> и возможно опять много текста";

при формате на форуме <php echo('test'); ?> стал <PHP - стал ЗАГЛАВНЫМИ буквами. У меня, так тоже не сработало)))
измените на <php должно работать!!!
 
 Top
-=1100=-
Отправлено: 21 Июня, 2012 - 11:34:40
Post Id



Частый гость


Покинул форум
Сообщений всего: 156
Дата рег-ции: Май 2007  
Откуда: Город Святого Петра


Помог: 0 раз(а)

[+]


fdr21 Спасибо!

Можно конечно и в файл отдельный, но это не удобно когда код 5-7 строчек.
Всем огромное спасибо.

(Отредактировано автором: 21 Июня, 2012 - 11:36:20)



-----
INSPIRON |6400
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB