$text = "(квадратная ковычка)php(опять ковычка) echo "lol";(ковычка)/php(ковычка)";
писал ковычка потомучто bbcode считает его за обрамление php кода
function complate ($text)
{
$text = preg_replace_callback('#\[code=([^\] ]+?)\](.+?)\[/code=\\1\]#si', array($this, 'getFormat'),
$text);
return $text;
}
function getFormat($match)
{
// Разбираем конфигу
global $configBBcode;
// Получаем название форматтера
$format = str_replace("\n", "", strtolower($match[1]));
// Проверяем, есть ли такой в наличии
if(in_array($format, $configBBcode['formatters']))
{
// Подключаем нужный файл
require './system/library/bbcode/formatters/'. $format .'.php';
// Запускаем функцию из переменной
return $format($match[2]);
}else{
return 'No formatter '. $match[1];
}
}
$configBBcode = array(
'formatters' = array(
'[code=php]' => 'php',
'[code=html]' => 'html'
)
);
File php.php
<?php
/**
* Форматтер PHP кода
*/
//////////////////////////////////////////////////
/**
* Функция подcветки PHP кода
* @param string $str //обрабатываеемая строка
* @return string
*/
function php($code)
{
$code = htmlspecialchars_decode($code);
if(substr($code,0,2) == "<?")
$code = "<?php\n".trim($code, "<?ph");
$arr = range(1, substr_count($code, "\n") + 1);
$num = implode("\n", $arr);
$line = '<div style="float:left;'
.' border-right:1px solid;'
.' background-color:#000066;'
.' padding-left:3px;'
.' padding-right:3px;'
.' margin-right:2px;font-size:13px'
.' margin-top:-5px;'
.' text-align:right;">'
."<code style=\"color:#FFFFFF\">\n". $num ."\n</code></div>";
return '<div class="php">'
. $line . highlight_string($code, true) .
'</div>';
}
echo complate($text);
выдает ошибку: - Warning: in_array() expects parameter 2 to be array, null given
Спустя 4 минуты, 30 секунд (4.07.2012 - 17:30) inpost написал(а):
Синтаксис массивов:
key => value, а не key = value.
key => value, а не key = value.
Спустя 4 минуты (4.07.2012 - 17:34) Shkiper написал(а):
Неработает
Спустя 1 час, 25 минут, 6 секунд (4.07.2012 - 18:59) Shkiper написал(а):
$text = "(квадратная ковычка)php(опять ковычка) echo "lol";(ковычка)/php(ковычка)";
писал ковычка потомучто bbcode считает его за обрамление php кода
function complate ($text)
{
$text = preg_replace_callback('#\[code=([^\] ]+?)\](.+?)\[/code=\\1\]#si', array($this, 'getFormat'),
$text);
return $text;
}
function getFormat($match)
{
// Разбираем конфигу
global $configBBcode;
// Получаем название форматтера
$format = str_replace("\n", "", strtolower($match[1]));
// Проверяем, есть ли такой в наличии
if(in_array($format, $configBBcode['formatters']))
{
// Подключаем нужный файл
require './system/library/bbcode/formatters/'. $format .'.php';
// Запускаем функцию из переменной
return $format($match[2]);
}else{
return 'No formatter '. $match[1];
}
}
$configBBcode = array(
'formatters' = array(
'php' => '[code=php]',
'html' => '[code=html]'
)
);
File php.php
<?php
/**
* Форматтер PHP кода
*/
//////////////////////////////////////////////////
/**
* Функция подcветки PHP кода
* @param string $str //обрабатываеемая строка
* @return string
*/
function php($code)
{
$code = htmlspecialchars_decode($code);
if(substr($code,0,2) == "<?")
$code = "<?php\n".trim($code, "<?ph");
$arr = range(1, substr_count($code, "\n") + 1);
$num = implode("\n", $arr);
$line = '<div style="float:left;'
.' border-right:1px solid;'
.' background-color:#000066;'
.' padding-left:3px;'
.' padding-right:3px;'
.' margin-right:2px;font-size:13px'
.' margin-top:-5px;'
.' text-align:right;">'
."<code style=\"color:#FFFFFF\">\n". $num ."\n</code></div>";
return '<div class="php">'
. $line . highlight_string($code, true) .
'</div>';
}
echo complate($text);
выдает ошибку: - Warning: in_array() expects parameter 2 to be array, null given in Z:\home\localhost\www\system\classes\engine.class.php on line 255
Спустя 2 минуты, 7 секунд (4.07.2012 - 19:01) inpost написал(а):
ты мою ошибку не исправил.
Напиши тут пример, как выглядеть должен МНОГОМЕРНЫЙ массив. Можешь зацитировать из мануала.
Напиши тут пример, как выглядеть должен МНОГОМЕРНЫЙ массив. Можешь зацитировать из мануала.
Спустя 4 минуты, 10 секунд (4.07.2012 - 19:06) Shkiper написал(а):
$array = array(
'key' => array(
'key1'=>'val1'
)
);
Спустя 24 минуты, 1 секунда (4.07.2012 - 19:30) inpost написал(а):
а теперь на свой многомерный массив глянь: configBBcode
Внимательно ищи ошибку.
Внимательно ищи ошибку.
Спустя 12 часов, 19 минут, 13 секунд (5.07.2012 - 07:49) Shkiper написал(а):
это касается синтаксиса или key=>val ???
Спустя 6 минут, 50 секунд (5.07.2012 - 07:56) Shkiper написал(а):
У меня для тебя 2 новости: одна хорошая, а другая плохая. Начнем с хорошего. Я нашел ошибку:
'formatters' => array(
'[code=php]' => 'php',
'[code=html]' => 'html'
)
И вторая плохая - оно не решило проблемы, код ошибки такой же. У меня созревает только один вопрос - чего этому долбаному интерпретатору надо???
'formatters' => array(
'[code=php]' => 'php',
'[code=html]' => 'html'
)
И вторая плохая - оно не решило проблемы, код ошибки такой же. У меня созревает только один вопрос - чего этому долбаному интерпретатору надо???
Спустя 2 часа, 34 минуты, 47 секунд (5.07.2012 - 10:30) glock18 написал(а):
Цитата (Shkiper @ 5.07.2012 - 04:56) |
У меня для тебя 2 новости: одна хорошая, а другая плохая. Начнем с хорошего. Я нашел ошибку: |
на нее указано было в самом начале
Спустя 41 минута, 8 секунд (5.07.2012 - 11:12) walerus написал(а):
Shkiper Что такое квадратная кавычка епрст , и ошибка
Цитата |
on line 255 |
по приведенному коду я не насчитываю 255 строк, ты хотя бы пометил в какой строке ошибка, мб у тебя ранее что то косячит, приложи файлы наконец...
Спустя 3 часа, 11 минут, 17 секунд (5.07.2012 - 14:23) inpost написал(а):
Shkiper
Показывай исправленный код, вдруг ты не там нашел, где я. Я же должен убедиться, что ты исправил верно.
Кроме того надо показывать код ошибки и строчку на которой ошибка. Если строчка 255, значит назови, что находится на 255 строчке.
Показывай исправленный код, вдруг ты не там нашел, где я. Я же должен убедиться, что ты исправил верно.
Кроме того надо показывать код ошибки и строчку на которой ошибка. Если строчка 255, значит назови, что находится на 255 строчке.
Спустя 44 минуты, 21 секунда (5.07.2012 - 15:07) Tadochi написал(а):
highlight() не актуален?
Спустя 51 минута, 46 секунд (5.07.2012 - 15:59) inpost написал(а):
Tadochi
У нас тут учатся быть программистами, а не машинистами
У нас тут учатся быть программистами, а не машинистами
Спустя 4 часа, 12 минут, 22 секунды (5.07.2012 - 20:11) Shkiper написал(а):
inpost спасибо за уделенное внимание я решил проблему. Я глобальный массив заделал в класс как переменную и вызывал $this.... и все стало на свои места