Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Специальные » Тестирование » Тест подсветки кода

Модерирует : 3xp0, PEDKA

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5

Открыть новую тему     Написать ответ в эту тему

batva



crazy administrator
Редактировать | Профиль | Сайт | Сообщение | Цитировать | Сообщить модератору
[code=perl]
sub parse {
  my ($self,$raw_cookie) = @_;
  my %results;
 
  my(@pairs) = split("; ?",$raw_cookie);
  foreach (@pairs) {
    s/\s*(.*?)\s*/$1/;
    my($key,$value) = split("=");
 
    # Some foreign cookies are not in name=value format, so ignore
    # them.
    next if !defined($value);
    my @values = ();
    if ($value ne '') {
      @values = map CGI::unescape($_),split(/[&;]/,$value.'&dmy');
      pop @values;
    }
    $key = unescape($key);
    # A bug in Netscape can cause several cookies with same name to
    # appear.  The FIRST one in HTTP_COOKIE is the most recent version.
    $results{$key} ||= $self->new(-name=>$key,-value=>\@values);
  }
  return \%results unless wantarray;
  return %results;
}
 
[/code]
 
 
[code=php]
<pre>
<?php
 
include "classes.inc";
 
// функции-утилиты
 
function print_vars($obj)  
{
   $arr = get_object_vars($obj);
   while (list($prop, $val) = each($arr))
       echo "\t$prop = $val\n";
}
 
function print_methods($obj)  
{
   $arr = get_class_methods(get_class($obj));
   foreach ($arr as $method)
       echo "\tfunction $method()\n";
}
 
function class_parentage($obj, $class)  
{
   if (is_subclass_of($GLOBALS[$obj], $class)) {
       echo "Object $obj belongs to class " . get_class($$obj);
       echo " a subclass of $class\n";
   } else {
       echo "Object $obj does not belong to a subclass of $class\n";
   }
}
 
// создание экземпляров объектов
 
$veggie = new Vegetable(true, "blue");
$leafy = new Spinach();
 
// распечатка информации об объектах
echo "veggie: CLASS " . get_class($veggie) . "\n";
echo "leafy: CLASS " . get_class($leafy);
echo ", PARENT " . get_parent_class($leafy) . "\n";
[/code]
 
 
[code=c]
int FindMax(int n1, int n2)
{
    if (n1 > n2)
    {
        return n1;
    }
    else
    {
        return n2;
    }
}
 
void PrintMax(int someNumber)
{
    cout << "The max is " << someNumber << endl;
}
 
void PrintHW()
{
    cout << "Hello World" << endl;
}
 
float FtoC(float faren)
{
    float factor = 5./9.;
    float freezing = 32.0;
    float celsius;
 
    celsius = factor * (faren - freezing);
 
    return celsius;
}  
[/code]
 
[code=sql]
BEGIN
SET NOCOUNT ON
 
DECLARE @sql varchar(500) --Holds to SQL needed to create columns from error log
 
IF (SELECT OBJECT_ID(@log_name,'U')) IS NOT NULL
BEGIN
IF @overwrite = 0
BEGIN
RAISERROR('Table already exists. Specify another name or pass 1 to @overwrite parameter',18,1)
RETURN -1
END
ELSE
BEGIN
EXEC('DROP TABLE ' + @log_name)
END
END
 
 
--Temp table to hold the output of sp_readerrorlog
CREATE TABLE #errlog
(
err varchar(1000),
controw tinyint
)
 
--Populating the temp table using sp_readerrorlog
INSERT #errlog  
EXEC sp_readerrorlog @log_number
 
--This will remove the header from the errolog
SET ROWCOUNT 4
DELETE #errlog
SET ROWCOUNT 0
 
 
SET @sql = 'SELECT  
CONVERT(DATETIME,LEFT(err,23)) [Date],  
SUBSTRING(err,24,10) [spid],  
RIGHT(err,LEN(err) - 33) [Message],  
controw  
INTO ' + QUOTENAME(@log_name) +  
' FROM #errlog ' +  
'WHERE controw = 0'
 
--Creates the table with the columns Date, spid, message and controw
EXEC (@sql)
 
--Dropping the temporary table
DROP TABLE #errlog
 
SET NOCOUNT OFF
PRINT 'Error log successfully imported to table: ' + @log_name
END
 
[/code]
 
[code=html]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Яndex</title>
<link rel="SHORTCUT ICON" href="/favicon.ico">
<base target="_top">
</head>
<body bgcolor="white" text="black" link="999999" vlink="999999" alink="999999"  
onLoad="if( self.parent.frames.length != 0 ) self.parent.location = document.location">
<table height="100%" width="100%" border="0">
<tr>
<td align="center">
<form name="web" method="get" action="http://www.yandex.ru/yandsearch">
<input type="hidden" name="rpt" value="rad">
<table border="0" cellspacing="10" cellpadding="0">
<tr>
<td><a href="http://www.yandex.ru/"><img src="logo.gif" alt="Яндекс" width="76" height="44" border="0" /></a></td>
<td><input type="text" name="text" size="50" value="" maxlength="160" /></td>
<td><input type="submit" value="Найти!" /></td>
</tr>
</table>
</form>
<script><!--
document.web.text.focus()
// --></script>
</td>
</tr>
<tr>
[/code]
 
[code=css]
<style><!--
body,td,div,.p,a{font-family:arial,sans-serif }
div,td{color:#000}
.f,.fl:link{color:#6f6f6f}
a:link,.w,a.w:link,.w a:link{color:#00c}
a:visited,.fl:visited{color:#551a8b}
a:active,.fl:active{color:#f00}
.t a:link,.t a:active,.t a:visited,.t{color:#000}
.t{background-color:#e5ecf9}
.k{background-color:#36c}
.j{width:34em}
.h{color:#36c}
.i,.i:link{color:#a90a08}
.a,.a:link{color:#008000}
.z{display:none}
div.n {margin-top: 1ex}
.n a{font-size:10pt; color:#000}
.n .i{font-size:10pt; font-weight:bold}
.q a:visited,.q a:link,.q a:active,.q {color: #00c; }
.b{font-size: 12pt; color:#00c; font-weight:bold}
.ch{cursor:pointer;cursor:hand}
.e{margin-top: .75em; margin-bottom: .75em}
.g{margin-top: 1em; margin-bottom: 1em}
//-->
</style>
[/code]
 
[code=javascript]
function ss(w){window.status=w;return true;}
function cs(){window.status='';}
function clk(el,ct,cd) {
if(document.images){
(new Image()).src="/url?sa=T&ct="+escape(ct)+"&cd="+escape(cd)+"&url="+escape(el.href);}
return true;
}
function ga(o,e){if (document.getElementById){
a=o.id.substring(1); p = "";r = "";g = e.target;
if (g) { t = g.id;f = g.parentNode;
if (f) {p = f.id;h = f.parentNode;if (h) r = h.id;}}  
else{h = e.srcElement;f = h.parentNode;
if (f) p = f.id;t = h.id;
}
if (t==a || p==a || r==a) return true;
location.href=document.getElementById(a).href}
}
[/code]
 
http://forum.ru-board.com/topic_c3.cgi?forum=2&topic=1289

Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 02:20 13-09-2004
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
уррааа!! батва, урааааа! баттва, урааааааа!
а почему еще полностью не прикрутил?
только вот цвета бы поменять на красные/синие/зеленые вместо розовых/фиолетовых/кислотных
 
Добавлено
насчет того что я тебе в ПМ сказал:
[code=php]
<?php
$message = $_POST['message'];
$img_open = preg_quote ('[img]');
$img_close = preg_quote ('[/img]');
$message = preg_replace ("/".$img_open."http:\/\/(.+?)".$img_close."/i", "<img src='http://".str_replace('\'', '&quot;', $1)."'>", $message);
print $message;
?>
[/code]
 
[code=php]
<?php
$message = $_POST['message'];
$img_open = preg_quote ('[img]');
$img_close = preg_quote ('[/img]');
$message = preg_replace ("/".$img_open."http:\/\/(.+?)".$img_close."/i", "<img src='http://".str_replace('\'', '&quot;', $1)."'>", $message);
print $message;
?>
[/code]
 
(программисты не бейте меня, я не смотрел манюал, и не знаю будет ли работать там str_replace; но это я так, для примера...
 
Добавлено
ЗЫ: ну и линии кода можно было бы обрезать...
 
Добавлено
а еще лучше как на других форумах, запихивать в <iframe></iframe>, и две кнопочки, чтоб больше, и чтоб меньше размер был

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 02:31 13-09-2004 | Исправлено: xntx, 03:05 13-09-2004
batva



crazy administrator
Редактировать | Профиль | Сайт | Сообщение | Цитировать | Сообщить модератору
цвета тут -->
Поменяй на свое усмотрение.
 
 

Цитата:
а почему еще полностью не прикрутил?

Потому что тормозит. Нужно еще кеширование сделать.
И еще непонятно, нужно оно вообще.
 
Не форум, а гирлянда.
Разве что на новый год включать.
 
 
 
Добавлено
Да и глючит еще все.

Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 03:09 13-09-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
batva

Цитата:
Потому что тормозит.

дык.. только при постинге и модификации.. не каждый раз подсветку то создавать заново.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:57 13-09-2004
batva



crazy administrator
Редактировать | Профиль | Сайт | Сообщение | Цитировать | Сообщить модератору
xntx
по поводу кодов внутри [code]
исправил.
 
остальные баги, типа &quot; тоже еще нужно отлавливать..
 
 

Цитата:
ЗЫ: ну и линии кода можно было бы обрезать...  

какие линии?
 

Цитата:
а еще лучше как на других форумах, запихивать в <iframe></iframe>, и две кнопочки, чтоб больше, и чтоб меньше размер был  

покажи пример плииз.
я не видел такое, наверно мало по другим форумам хожу.
 
Cheery

Цитата:
дык.. только при постинге и модификации.. не каждый раз подсветку то создавать заново.

 
Не знаю что лучше, парсить в обратную сторону, или сделать кеширование. (Один раз прошлись по коду, потом берем из кеша вплоть до перезапуска apache.)
Кеш храним в DB файле.
 
 
 

Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 04:32 13-09-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
batva
думаю, что в обратную.. иначе придется каждый раз при перезапуске.. маленькая, но выгода.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 04:49 13-09-2004
batva



crazy administrator
Редактировать | Профиль | Сайт | Сообщение | Цитировать | Сообщить модератору
Cheery
вот с кешированием.
http://forum.ru-board.com/topic_c2.cgi?forum=2&topic=1289
 
вот без
http://forum.ru-board.com/topic_c.cgi?forum=2&topic=1289
 
сравни на глаз выигрыш в скорости.
 
Добавлено
А это с постоянно висящим в памяти  
http://forum.ru-board.com/topic_c3.cgi?forum=2&topic=1289

Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 05:00 13-09-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не могу.. комп считает и тормозит.
поэтому по разному все страницы открываются.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 05:08 13-09-2004
batva



crazy administrator
Редактировать | Профиль | Сайт | Сообщение | Цитировать | Сообщить модератору
Первое попавшееся в гугле
http://www.websiteoptimization.com/services/analyze/
но не то.
 
Этот измеряет время загрузки, а не отклика.
 
 
 
Добавлено
[code=python]
"""Python implementation of the access control machinery."""
 
import os
import string
 
from Acquisition import aq_base
from ExtensionClass import Base
from zLOG import LOG, PROBLEM
 
# This is used when a permission maps explicitly to no permission.  We
# try and get this from cAccessControl first to make sure that if both
# security implementations exist, we can switch between them later.
try:
    from cAccessControl import _what_not_even_god_should_do
except ImportError:
    _what_not_even_god_should_do = []
 
from AccessControl import SecurityManagement
from AccessControl import Unauthorized
from AccessControl.SimpleObjectPolicies import Containers, _noroles
from AccessControl.ZopeGuards import guarded_getitem
 
 
# AccessControl.PermissionRole
# ----------------------------
 
_ident_chars = string.ascii_letters + string.digits + "_"
name_trans = filter(lambda c, an=_ident_chars: c not in an,
                    map(chr, range(256)))
name_trans = string.maketrans(''.join(name_trans), '_' * len(name_trans))
 
 
def rolesForPermissionOn(perm, object, default=('Manager',)):
    """Return the roles that have the given permission on the given object
    """
    im = imPermissionRole()
    im._p = '_' + string.translate(perm, name_trans) + "_Permission"
    im._d = default
    return im.__of__(object)
 
 
class PermissionRole(Base):
    """Implement permission-based roles.
 
    Under normal circumstances, our __of__ method will be
    called with an unwrapped object.  The result will then be called
    with a wrapped object, if the original object was wrapped.
    To deal with this, we have to create an intermediate object.
 
    """
 
    def __init__(self, name, default=('Manager',)):
        self.__name__ = name
        self._p = '_' + string.translate(name, name_trans) + "_Permission"
        self._d = self.__roles__ = default
 
    def __of__(self, parent):
        r = imPermissionRole()
        r._p = self._p
        r._pa = parent
        r._d = self._d
        p = getattr(parent, 'aq_inner', None)
        if p is not None:
            return r.__of__(p)
        else:
            return r
 
 
 
[/code]

Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 05:22 13-09-2004
Eric Lazzy



Главный мент
Редактировать | Профиль | Сайт | Сообщение | Цитировать | Сообщить модератору

Цитата:
сравни на глаз выигрыш в скорости

а у меня всё одинаково быстро

----------
лень - двигатель прогресса ©

Всего записей: 7971 | Зарегистр. 01-11-2003 | Отправлено: 09:59 13-09-2004
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
batva

Цитата:
покажи пример плииз.  

http://forum.siemens-club.ru/viewtopic.php?TopicID=35764&page=1
9тый пост сверху, там кода огого, а на странице (визуально) место не занимает пока не развернешь

Цитата:
сравни на глаз выигрыш в скорости.

ну разница конечно есть...

Цитата:
остальные баги, типа &quot; тоже еще нужно отлавливать..  

это не баг, это я прописал &quot; (тоесть это фича )

Цитата:
какие линии?  

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

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 14:56 13-09-2004
batva



crazy administrator
Редактировать | Профиль | Сайт | Сообщение | Цитировать | Сообщить модератору
xntx

Цитата:
это не баг, это я прописал &quot; (тоесть это фича )  

да, ты так написал, но подсветка заменила  кавычкой.
 
http://forum.ru-board.com/topic_c3.cgi?forum=2&topic=1289#2
 
Значит это баг.
 
 
 

Цитата:
всмысле когда сильно много кода в одной строке, даже если с пробелами, то все-равно разезжается...

ага, это потому что я поставил <pre>
если убрать, тогда как отступы(табы) форматировать?
 
 
 

Цитата:
http://forum.siemens-club.ru/viewtopic.php?TopicID=35764&page=1  
9тый пост сверху, там кода огого, а на странице (визуально) место не занимает пока не развернешь  

 
ага, интересная фича.
Это их, или в движке в том присутствует?
 
Пойду гляну на сайт движка, это tForum
 
Добавлено

Код:
 
if ($a){
print "hello";
}
else{
print "hello2";
}
 

 
[code=perl]
if ($a){
print "hello";
}
else{
print "hello2";
}
[/code]
 
Добавлено
Про отступы я забыл, все там будет ок.

Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 15:47 13-09-2004
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
да уж, цвета нормальные подобрать у меня не получилось...

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 00:51 15-09-2004
batva



crazy administrator
Редактировать | Профиль | Сайт | Сообщение | Цитировать | Сообщить модератору
xntx

Цитата:
да уж, цвета нормальные подобрать у меня не получилось...

Значит оставляем эти?

Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 23:40 15-09-2004
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
batva
похоже что да

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 23:44 15-09-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Эх.. доработал бы кто это
http://shjs.sourceforge.net/
чтобы выглядело как (внешнее представление, не больше)
http://code.google.com/p/syntaxhighlighter/
времени нету  
ps: это не сложно, на самом деле  


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:06 25-02-2008 | Исправлено: Cheery, 00:26 25-02-2008
KADABRA



Великий покусатель
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
http://shjs.sourceforge.net/

Похоже скоро для того чтобы почитать форум нужен будет 4-х ядерный процессор и 8ГБ оперативки...

----------
Это не подпись.

Всего записей: 1718 | Зарегистр. 14-07-2003 | Отправлено: 01:06 25-02-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KADABRA

Цитата:
Похоже скоро для того чтобы почитать форум нужен будет 4-х ядерный процессор и 8ГБ оперативки...

это все равно лучше, чем грузить сервер..  
тем более там ничего с нагрузкой нет, как и вообще на руборде.
js есть, но он "не работает" постоянно.
плюс подсветку, опять же, можно будет вырубить.
и если делать, то чтобы подгружались те языки, которые есть на данной странице, а не все сразу

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:08 25-02-2008 | Исправлено: Cheery, 01:09 25-02-2008
KADABRA



Великий покусатель
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Каждый скрипт всё-таки увеличивает время готовности страницы, так что, я конечно преувеличиваю, но всё-таки
 
Да, и чем SHJS лучше гугловского хайлайтера?

----------
Это не подпись.

Всего записей: 1718 | Зарегистр. 14-07-2003 | Отправлено: 01:13 25-02-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KADABRA

Цитата:
Да, и чем SHJS лучше гугловского хайлайтера?

1) тем, что кода действительно меньше и он более "открыт" (css - 3кб, основной код - 10кб.. +регулярка для конкретного языка от 2 до 25 кб.. в основном 2-3 кб)
2) удобность именно в том, что конвертируются файлы типа "highlight", чего нет в другом (он не гугловский, просто автор туда переехал. парой писем я с ним перекидывался и предлагал использовать именно набор регулярок от программы хайлайт - там ОЧЕНЬ большой выбор языков)
3) у второго даже нет перла в списке (автор признался в его незнании).
 
морду, аналогичную второму, можно написать.. вот и спрашиваю ктобы взялся.. какие нить вопросы я бы помог решить, просто сейчас со временем напряг.. надо статью доделывать

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:15 25-02-2008 | Исправлено: Cheery, 01:19 25-02-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5

Компьютерный форум Ru.Board » Специальные » Тестирование » Тест подсветки кода

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.
Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru