Перейти к содержимому



Функция форматирования кода

#1 Vialls
Vialls
  • Неактивные
  • 581 сообщений
  • Репутация: 1
0

Обновлено 08 апреля 2008 - 18:06  Отправлено 07 апреля 2008 - 10:48

ZiTosS
Не в тему немного, а где функции php найти, которая форматирует код?

 

 

  • 0

#2 ZiTosS
ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 07 апреля 2008 - 20:08

Что ты понимаешь под форматированием кода?
Может ты имеешь ввиду регулярки, тогда вот
Replace

Будут вопросы говори, если не это, разъясни точнее, не понял, что значит форматирование кода!!!
  • 0

#3 Vialls
Vialls
    Topic Starter
  • Неактивные
  • 581 сообщений
  • Репутация: 1

Отправлено 07 апреля 2008 - 20:25

Я имел ввиду, есть готовые функцие, которым передаешь строку(код допустим html) и функция возвращает строку с подсвеченным кодом? Просто самому лень писать.
  • 0

#4 ZiTosS
ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 07 апреля 2008 - 20:42

Есть, у меня даже в книгке было, ща выложу )))
Скрипт форматирует PHP-код, делая его с подсветкой, не знаю как не смотрел!

Взято из книги "Головоломки на PHP для хакера"

<?php
function shighlight($document)
{
  // Преобразуем угловые скобки для отображения HTML-тегов
  $document = str_replace("<", "&lt;", $document);
  $document = str_replace(">", "&gt;", $document);
  // Преобразуем теги PHP <?php и ? >
  $tegs = array("'&lt;?php'si","'&lt;?'si","'?&gt;'si");
  $replace = array("<font color=#95001E>&lt;?php</font>",
				   "<font color=#95001E>&lt;?</font>",
				   "<font color=#95001E>?&gt;</font>");
  $document = preg_replace($tegs, $replace, $document);
  // Преобразуем комментарии
  $document = preg_replace("'((?:#|//)[^n]*|/*.*?*/)'si",
						   "<font color=#244ECC>1</font>",
							$document);
  // Осуществляем переносы строк
  $document = preg_replace("'(n)'si","<br>1", $document);
  // Преобразуем функции
  $document = preg_replace ("'([w]+)([s]*)[(]'si",
							"<font color=#0000CC><b>1</b></font>2(",
							$document);
  // Преобразуем операторы
  $separator = array("','si",
					 "'-'si",
					 "'+'si",
					 "'('si",
					 "')'si",
					 "'{'si",
					 "'}'si");
  $replace = array("<font color=#1A691A>,</font>",
				   "<font color=#1A691A>-</font>",
				   "<font color=#1A691A>+</font>",
				   "<font color=#1A691A>(</font>",
				   "<font color=#1A691A>)</font>",
				   "<font color=#1A691A>{</font>",
				   "<font color=#1A691A>}</font>");
  $document = preg_replace($separator,$replace,$document);
  // Преобразуем переменные PHP
  $document = preg_replace("'([$]{1,2}[A-Za-z_]+)'si",
						   "<b><font color=#000000>1</font></b>",
						   $document);
  // Преобразуем строки, заключенные в одинарные и двойные кавычки
  $str = array("'("[^"]*")'si",
				 "'('[^']*')'si");
  $replace = array("<font color=#FFCC00>1</font>",
				   "<font color=#FFCC00>1</font>");
  $document = preg_replace($str, $replace, $document);
  // Преобразуем зарезервированные слова
  $str = array("'(echo)'si",
			   "'(print)'si",
			   "'(while)'si",
			   "'(for)'si",
			   "'(if)'si",
			   "'(else)'si",
			   "'(switch)'si",
			   "'(function)'si",
			   "'(array)'si");
  $replace = array_fill(0,
						count($str),
						"<b><font color=#0000CC>1</font></b>");
  $document = preg_replace($str, $replace, $document);
  // Возвращаем результат работы функции
  return "<code>$document</code>";
}
?>

  • 0

#5 Vialls
Vialls
    Topic Starter
  • Неактивные
  • 581 сообщений
  • Репутация: 1

Отправлено 07 апреля 2008 - 21:04

Спасибо огромное! Как раз - то, что нужно!!!!
  • 0

#6 ZiTosS
ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 07 апреля 2008 - 21:08

Пажайлуста, в книге многа полезных скриптов, сокровеще моё! ;)
  • 0

#7 glinjanumaxim
glinjanumaxim
  • Заблокированные
  • 57 сообщений
  • Репутация: 0

Отправлено 08 апреля 2008 - 18:06

если что обращайся
  • 0



Похожие темы
  Название темы Автор Статистика Последнее сообщение

Пользователь месяца
Megoydagi Megoydagi 1-й за Март
Очков активности: 777 6 тем, 56 сообщений, 7 баллов репутации
Сайт: 24ho.ru
ТОП самых активных за этот месяц
  • Фотография Vmir
    #1

    Vmir
    Очков активности: 1080 4 темы, 60 сообщений, 10 баллов репутации

  • Фотография MattCutts
    #2

    MattCutts (dmitrylee.com)
    Очков активности: 765 6 тем, 67 сообщений, 6 баллов репутации

  • Фотография NataliaAntalia
    #3

    NataliaAntalia (zdorovemedicina.ru)
    Очков активности: 189 Вне конкурса за определение пользователя месяца

  • Фотография r0mZet
    #4

    r0mZet (rz-style.ru)
    Очков активности: 157.5 3 темы, 12 сообщений, 5 баллов репутации

  • Фотография Linomen
    #5

    Linomen
    Очков активности: 111 3 темы, 28 сообщений, 2 балла репутации

  • Фотография Totti
    #6

    Totti
    Очков активности: 108 Вне конкурса за определение пользователя месяца

  • Фотография Владислава Рыкова
    #7

    Владислава Рыкова
    Очков активности: 48 0 тем, 8 сообщений, 4 балла репутации

  • Фотография Megoydagi
    #8

    Megoydagi (24ho.ru)
    Очков активности: 33 Вне конкурса за определение пользователя месяца

  • Фотография sws
    #9

    sws
    Очков активности: 24 0 тем, 16 сообщений, 1 балл репутации

  • Фотография magnet
    #10

    magnet (rbfxdirect.com)
    Очков активности: 19.5 1 тема, 10 сообщений, 1 балл репутации

  • Показать весь ТОП 10

Поддержите форум! =)
Топ 5 участников по репутации

Оформление форума – IPBSkins.ru