- 1
- 2
// Получаем объект логгера
$this->logger = nvCommandLogger::getInstance();
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+148
// Получаем объект логгера
$this->logger = nvCommandLogger::getInstance();
Спасибо, Кэп!
+163
Example #3 preg_replace_callback() using recursive structure to handle encapsulated BB code
<?php
$input = "plain [indent] deep [indent] deeper [/indent] deep [/indent] plain";
function parseTagsRecursive($input)
{
$regex = '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#';
if (is_array($input)) {
$input = '<div style="margin-left: 10px">'.$input[1].'</div>';
}
return preg_replace_callback($regex, 'parseTagsRecursive', $input);
}
$output = parseTagsRecursive($input);
echo $output;
?>
Не знаю, баян или нет. Поиском не смог найти preg_replace_callback на этом сайте.
В таком недлинном коде есть очень аппетитное дерьмецо (кроме языка). Если в качестве $input взять строку подлиннее, то интерпретатор, как Чак Норрис, сосчитает до бесконечности. Исправляется добавлением одного символа к коду.
+164
//Пришел
$in_h = "10";
//Ушел
$exit_h = "19";
//Для определения, ушел после полуночи или до
$metka = date(a);
if ($metka == "pm") {
echo ("24" - $in_h)-("24" - $exit_h);
}
else if ($metka == "am")
{
echo "am";
echo "24" - $in_h + $exit_h;
вычисление времени, проведенного на работе..
+150
function rustrtolower($s)
{
$from = array("А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я","A","B","C","D","E","F","G","H","I","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","J");
$to = array("а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я","a","b","c","d","e","f","g","h","i","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","j");
return str_replace($from, $to, $s);
}
+155
if($inc == true){
$counter_val = $cat[$this->FileCounterKey] + 1;
}else{
$counter_val = $cat[$this->FileCounterKey] - 1;
}
Класс деревьев в одной русской CMS. Метод пересчитывает кол-во файлов в категории после добавления/удаления.
+165
// Обработка запроса
for ($i = 1; $i<=300000; $i++)
{
$marat=$marat+10;
}
Эмуляция паузы при генерировании РНР-скриптом ответа для Flash-ки (сайт - онлайн казино)
+151
$currN = 0;
$countN = count($news);
$currW = 0;
$countW = count($wall);
$time = time();
$date = date('Y-m-d H:i:s');
// Жестянка в сферическом ваккуме куба
foreach($lenta as $k => &$v)
{
while (($v['DZ'] <= $news[$currN]['DZ']))
{
while (($news[$currN]['DZ'] <= $wall[$currW]['DZ']) && ($currW < $countW))
{
$this->create_time($wall[$currW]['DZ'], $time, $date);
$this->display_wall($wall[$currW]);
++$currW;
}
$this->create_time($news[$currN]['DZ'], $time, $date);
$this->display_news($news[$currN]);
++$currN;
}
$this->create_time($v['DZ'], $time, $date);
$this->display_lenta($v, $usr);
}
while ($currN < $countN)
{
while (($news[$currN]['DZ'] <= $wall[$currW]['DZ']) && ($currW < $countW))
{
$this->create_time($wall[$currW]['DZ'], $time, $date);
$this->display_wall($wall[$currW]);
++$currW;
}
$this->create_time($news[$currN]['DZ'], $time, $date);
$this->display_news($news[$currN]);
++$currN;
}
while ($currW < $countW)
{
$this->create_time($wall[$currW]['DZ'], $time, $date);
$this->display_wall($wall[$currW]);
++$currW;
}
Просто и со вкусом.
+161
$key = 0;
foreach ($this->hosts as $key => $host) {
$key++;
.....
}
+145
<?php
/* {{{ index */
function creative_stat_default()
{
$dtime = urldecode(get_param('dtime', date('d.m.Y-d.m.Y')));
list($begin_t, $end_t) = convert_date_calendar($dtime);
$user = User::get_instance();
$DB = DbSimple::getDb();
$creatives_ids = $user->get_users_ids_by_roles(array('creative'));
// user names
$sql = "
SELECT user_id AS ARRAY_KEY, {$user->sql_case_names} as name
FROM users
WHERE user_id IN (?a)";
$user_names = $DB->select($sql, $creatives_ids);
// tasks all
$sql = "
SELECT to_user_id AS ARRAY_KEY, count(task_id) as tasks_all
FROM creative_tasks
WHERE to_user_id IN (?a) AND dtime BETWEEN ?d AND ?d
GROUP BY to_user_id
";
$tasks = $DB->select($sql, $creatives_ids, $begin_t, $end_t);
// tasks done
$sql = "
SELECT to_user_id AS ARRAY_KEY, count(task_id) as tasks_done
FROM creative_tasks
WHERE to_user_id IN (?a) AND dtime BETWEEN ?d AND ?d AND status_id = ?d
GROUP BY to_user_id
";
$tasks_done = $DB->select($sql, $creatives_ids, $begin_t, $end_t, GOODS_STATUS_ACTIVE);
// goods all
$sql = "
SELECT creatives_id AS ARRAY_KEY, count(good_id) as goods_all
FROM goods
WHERE creatives_id IN (?a) AND date_create BETWEEN ?d AND ?d
GROUP BY creatives_id
";
$goods_all = $DB->select($sql, $creatives_ids, $begin_t, $end_t);
// goods active
$sql = "
SELECT creatives_id AS ARRAY_KEY, count(good_id) as goods_active
FROM goods
WHERE creatives_id IN (?a) AND date_create BETWEEN ?d AND ?d AND status_id = ?d
GROUP BY creatives_id
";
$goods_active = $DB->select($sql, $creatives_ids, $begin_t, $end_t, GOODS_STATUS_ACTIVE);
foreach($creatives_ids as $id) {
$stat[$id] = array_merge(
$user_names[$id],
isset($tasks[$id]) ? $tasks[$id] : array('tasks_all' => 0),
isset($tasks_done[$id]) ? $tasks_done[$id] : array('tasks_done' => 0),
array(
'tasks_not_ready' => (isset($tasks[$id]['tasks_all']) ? $tasks[$id]['tasks_all'] : 0) -
(isset($tasks_done[$id]['tasks_done']) ? $tasks_done[$id]['tasks_done'] : 0)),
isset($goods_all[$id]) ? $goods_all[$id] : array('goods_all' => 0),
isset($goods_active[$id]) ? $goods_active[$id] : array('goods_active' => 0)
);
}
render_tpl('creative/stat/index', array(
'header' => 'Статистика креатива',
'dtime' => $dtime,
'stat' => $stat
), 'creative#stat');
}
/* }}} */
Собираю статистику. Каждый запрос возвращает массив с ключем = id пользователя, дальше это все клеится в один массив для отображения в табличке.
+163
$json = "";
$json .= "{\n";
$json .= "page: $page,\n";
$json .= "total: $total,\n";
$json .= "rows: [";
$rc = false;
while ($row = mysql_fetch_array($result)) {
if ($rc) $json .= ",";
$json .= "\n{";
$json .= "id:'".$row['id']."',";
$json .= "cltr: 'fo',";
$json .= "cell:['";
$json .= $row['secid'];
$json .="','".$row['blasttradedate'];
$json .="','".round($row['bid'],$row['decimals']);
$json .="','".round($row['offer'],$row['decimals']);
$json .="','".round($row['price'],$row['decimals']);
if(round($row['last'],$row['decimals'])) $json .="','".round($row['last'],$row['decimals']);
else $json .="', '";
// и еще много строк в том же духе
}
$json .= "]\n";
$json .= "}";
Сборка JSON по-джедайски