Нумерация строк

Печать RSS
118


2000 лет д.н.э.
0
Замени в этом коде <br> на PHP_EOL
line из цикла же берется
будет return $ret;
Изменил: ramzes (11.06.2011 / 04:44)
Автор
Пацак
0
Вот так кое-как работает
<?
function numeric($var)
{

        $var = explode('<br/>', $var); 
        foreach ($var as $line => $string) { 
		$ret .= $line . ' ' . $string . '<br/>'; 
        }

return $ret;

}
?>

строки сбиваются иногда, и то срабатывает только когда вырублю highlight_string()
В

Чатланин
0
Как то так. Хотя решение не идеально.. надо сделать чтоб, при копировании кода, номера строк не копировались.
<style type="text/css">
div.code{width:50%;border:solid 1px #cccccc;margin:20px;padding-left:15px;overflow: auto;}
div.code span.nums{margin-right:15px;position:relative;right:0px; color:#000000;background-color:#cccccc;}
</style>
<?php
$str=highlight_file('index.php',true);
$arr=explode("<br />",$str);
$text='';
$i=0;
foreach($arr AS $str)
{
$i++;
$text.='<div><span class="nums">'.$i.'</span>'.$str.'</div>';
}
echo '<div class="code">';
echo $text;
echo '</div>';
?>
K

Транклюкаторщик
0
$i=0;
foreach($arr AS $str)
{
$i++;
мб for($i=0;$i<=**;$i++) будет красивее? smile

2000 лет д.н.э.
0
eGo Свободу Пандам (11 Июня 2011 / 18:18)
мб for($i=0;$i<=**;$i++) будет красивее? smile
неа, меньше действий, меньше кода.
у меня есть класс подсветки, но он не работает с хайлайт стринг (там в ней какие то странности со строками), только с живым текстом, (подсветка css и js)
считает отлично строки, вот из него я и дал метод подсчета
Автор
Пацак
0
valerik (11 Июня 2011 / 12:41)
Как то так. Хотя решение не идеально.. надо сделать чтоб, при копировании кода, номера строк не копировались.
<style type="text/css">
div.code{width:50%;border:solid 1px #cccccc;margin:20px;padding-left:15px;overflow: auto;}
div.code span.nums{margin-right:15px;position:relative;right:0px; color:#000000;background-color:#cccccc;}
</style>
<?php
$str=highlight_file('index.php',true);
$arr=explode("<br />",$str);
$text='';
$i=0;
foreach($arr AS $str)
{
$i++;
$text.='<div><span class="nums">'.$i.'</span>'.$str.'</div>';
}
echo '<div class="code">';
echo $text;
echo '</div>';
?>

то, что номера строк будут копироватся то не беда, но данный пример не подходит, т.к. мне не нужно подсвечивать весь файл, а только тот кусок кода который я выделю в

[i][size=1]Добавлено через 08:04 сек.[/size][/i]
Сделал вот так

[code]
<?
$str = СООБЩЕНИЕ;
$arr=explode("<br/>",$str); 
$text=''; 
$i=0; 
foreach($arr as $str) 
{ 
$i++; 
$text.=''.$i.' '.$str.'<br/>'; 
} 
echo '<div class="code">'; 
echo $text; 
echo '</div>';

выводит вот так

1
2 <?
3 echo 'Hallo';
4 ?>
5 

sad
Изменил: Дмитрий (13.06.2011 / 15:02)
Автор
Пацак
0
Вот так еще пробовал
$arr = explode("<br/>", $message);
foreach($arr as $num => $message)
{
$text .= $num . ' ' . $message . '<br/>';
}

echo bb_code($text);

выводит вверху ноль, потом начинается подсветка, но номера строк не правильные

2000 лет д.н.э.
0
ладно не мучайтесьsmile
<?php
//--- Функция подсветки кода ---//

function highlight_code($code){
$code = strtr($code,array('<br />'=>"\r\n",'[br]'=>"\r\n",'<br/>'=>"\r\n",'<'=>'<','>'=>'>','&amp;'=>'&','$'=>'$','"'=>'"','''=>"'",'\'=>'`','%'=>'%','^'=>'^'));
if(!strpos($code,'<?') && substr($code,0,2)!='<?'){
$code="<?php\r\n".trim($code);
}
$code = highlight_string($code,true);
$code = strtr($code,array('<br />'=>"\r\n",'[br]'=>"\r\n",'<br/>'=>"\r\n"));
$code = preg_replace('|(&nbsp;){2,40}|', "\1\r\n", $code);
        $codeline = explode("\r\n", $code);
              foreach ($codeline as $line => $string){
                    if($string!=''){
         $ret.='<span style="color:#666">'.($line+1).'</span> &nbsp; '.trim($string).'<br />';
                    }
              }

$code = strtr($ret, array('$'=>'$',"'"=>''','`'=>'\','%'=>'%','^'=>'^'));

return '<div class="php"><div class="code">'.$code.'</div></div>';
}
?>
http://www.wapblog.in/blogpost/opredelenie-TYC-sayta/ вот что получиться должно
Изменил: ramzes (13.06.2011 / 16:58)
Автор
Пацак
0
Ваш положительный голос за пользователя ramzes успешно оставлен! smile

Добавлено через 05:38 сек.
PS а что а кврадраитики в пробелах у тебя и у меня ?

Добавлено через 09:17 сек.
ага, понял, это из-за \1

2000 лет д.н.э.
0
Какие квадратики?
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск