[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка со вторым параметром в функции in_array
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(

'[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.

Спустя 4 минуты (4.07.2012 - 17:34) Shkiper написал(а):
Неработает rolleyes.gif

Спустя 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'
)
user posted image user posted image user posted image
И вторая плохая - оно не решило проблемы, код ошибки такой же. У меня созревает только один вопрос - чего этому долбаному интерпретатору надо??? mad.gif

Спустя 2 часа, 34 минуты, 47 секунд (5.07.2012 - 10:30) glock18 написал(а):
Цитата (Shkiper @ 5.07.2012 - 04:56)
У меня для тебя 2 новости: одна хорошая, а другая плохая. Начнем с хорошего. Я нашел ошибку:


на нее указано было в самом начале dry.gif

Спустя 41 минута, 8 секунд (5.07.2012 - 11:12) walerus написал(а):
Shkiper Что такое квадратная кавычка епрст blink.gif , и ошибка
Цитата
on line 255
по приведенному коду я не насчитываю 255 строк, ты хотя бы пометил в какой строке ошибка, мб у тебя ранее что то косячит, приложи файлы наконец...

Спустя 3 часа, 11 минут, 17 секунд (5.07.2012 - 14:23) inpost написал(а):
Shkiper
Показывай исправленный код, вдруг ты не там нашел, где я. Я же должен убедиться, что ты исправил верно.
Кроме того надо показывать код ошибки и строчку на которой ошибка. Если строчка 255, значит назови, что находится на 255 строчке.

Спустя 44 минуты, 21 секунда (5.07.2012 - 15:07) Tadochi написал(а):
highlight() не актуален? unsure.gif

Спустя 51 минута, 46 секунд (5.07.2012 - 15:59) inpost написал(а):
Tadochi
У нас тут учатся быть программистами, а не машинистами smile.gif

Спустя 4 часа, 12 минут, 22 секунды (5.07.2012 - 20:11) Shkiper написал(а):
inpost спасибо за уделенное внимание я решил проблему. Я глобальный массив заделал в класс как переменную и вызывал $this.... и все стало на свои места wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.