- 1
- 2
- 3
- 4
- 5
// Обработка запроса
for ($i = 1; $i<=300000; $i++)
{
$marat=$marat+10;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+165
// Обработка запроса
for ($i = 1; $i<=300000; $i++)
{
$marat=$marat+10;
}
Эмуляция паузы при генерировании РНР-скриптом ответа для Flash-ки (сайт - онлайн казино)
+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 пользователя, дальше это все клеится в один массив для отображения в табличке.
+158
for (int i = 0; i < n; i++)
if (i == n + 2)
//действия
=)
+155
// Функция подключения файлов шаблонов -----------------------------------------------------------------
function tpl_include($filepath, $title = '', $content = '') {
global $lang, $lang_array;
$tpl_body = str_replace("\n", '', file_get_contents($filepath));
$tpl_body = preg_replace('#\{loop (.*?)\}(.*?)\{\/loop\}#i', "\nEOL;\nforeach (\\1 as \$var=>\$val) echo <<<EOL\n\\2\nEOL;\necho <<<EOL\n", $tpl_body);
$tpl_body = preg_replace('#\{const (.*?)\}#i', "\nEOL;\necho \\1;\necho <<<EOL\n", $tpl_body);
$to_eval = "echo <<<EOL\n".$tpl_body."\nEOL;\n";
eval($to_eval);
}
// -----------------------------------------------------------------------------------------------------
По следам http://govnokod.ru/5658.
Шаблонизатор этот жив и кочует из проекта в проект.
Можно ссылаться на переменные из массива $lang, где хранится локализация и на $title и $content. Вот так - {$title}.
Можно ссылаться на любые константы. Например, {const ROOT_PATH}.
Можно делать цикл {loop $array}{/loop}, где внутри доступны переменные {$var} и {$val}.
Полностью избавляет от шорт-тегов, которые скоро уже и уберут из похапе.
Работает лишь чуть медленнее include с шорт-тегами (0.8 против 1.2 на 10к прогонов) и, разумеется, быстрее Смарти.
При необходимости в каком-то проекте в чем-то еще - можно легко добавить.
В общем - изящное вонючее решение.
+151
<?php
else {
fwrite($fp,"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10));
$start=time();
socket_set_timeout($fp,1);
$st=fread($fp,1);
$r=socket_get_status($fp);
$r=$r["unread_bytes"];
$st.=fread($fp,$r);
fclose($fp);
$st=substr($st,5);
$address=SubStr($st,0,StrPos($st,chr(0)));
$address=str_replace(chr(0),"|",$address);
$st=SubStr($st,StrPos($st,chr(0))+1);
$name=SubStr($st,0,StrPos($st,chr(0)));
$st=SubStr($st,StrPos($st,chr(0))+1);
$map=SubStr($st,0,StrPos($st,chr(0)));
$st=SubStr($st,StrPos($st,chr(0))+1);
$st=SubStr($st,StrPos($st,chr(0))+1);
$st=SubStr($st,StrPos($st,chr(0))+1);
$current=ord(SubStr($st,0,1));
$max=ord(SubStr($st,1,1));
}
if ($_GET['info'] == "map")
{
echo "document.write('$map');";
}
if ($_GET['info'] == "players")
{
if ($current == "0")
{
echo "document.write('<font color=red>$current</font>/$max');";
}
else
{
if($current == $max)
{
echo "document.write('<font color=00FF00>$current</font>/$max');";
}else{
echo "document.write('$current/$max');";
}
}
}
if ($_GET['info'] == "map-img")
{
echo "document.write('<img width=$width border=0 src=http://image.www.gametracker.com/images/maps/160x120/cs/$map.jpg>');";
}
if ($_GET['info'] == "source-map")
{
echo "document.write('$name');";
}
if ($_GET['info'] == "block1")
{
echo "document.write('<table border=0><tr><td align=center><marquee>$name</marquee><br><img width=160px height=120px style=background:url(http://www.agrank.com/images/maps/210_150/_offline.jpg); border=0 src=http://image.www.gametracker.com/images/maps/160x120/cs/$map.jpg><br>Map - $map<br>Players - <script language=JavaScript src=http://game-monitoring.tk/ucoz/cs-info.php?ip=$ip&port=$port&info=players></script><br><br><center><input value=$ip:$port readonly=readonly onclick=f2(this); class=f_linput type=text></center></td></tr></table>');";
}
if ($_GET['info'] == "block4")
{
}
?>
Мало ли того, что гавнокод, так ещё и SubStr. аха
+158
$a=array(
'save'=>array(
'state'=>array('new'=>array(1, 1), 0=>array(0, 0), 1=>array(1, 1), 3=>array(1, 1), 4=>array(0, 0), 5=>array(0, 0), 6=>array(1, 1)),
'dest'=>1,
),
'save_and_back'=>array(
'state'=>array('new'=>array(1, 1), 0=>array(0, 0), 1=>array(1, 1), 3=>array(1, 1), 4=>array(0, 0), 5=>array(0, 0), 6=>array(1, 1)),
'dest'=>1,
),
'save_as_a_copy'=>array(
'state'=>array('new'=>array(0, 0), 0=>array(1, 1), 1=>array(1, 1), 3=>array(1, 1), 4=>array(1, 1), 5=>array(1, 1), 6=>array(1, 1)),
'dest'=>1,
),
'resend'=>array(
'state'=>array('new'=>array(0, 0), 0=>array(1, 1), 1=>array(1, 1), 3=>array(1, 1), 4=>array(1, 1), 5=>array(1, 1), 6=>array(1, 1)),
'dest'=>1,
),
'send'=>array(
'state'=>array('new'=>array(0, 1), 0=>array(0, 0), 1=>array(0, 1), 3=>array(0, 1), 4=>array(0, 0), 5=>array(0, 1), 6=>array(0, 1)),
'dest'=>array(1,3),
),
'testsend'=>array(
'state'=>array('new'=>array(0, 1), 0=>array(0, 0), 1=>array(0, 1), 3=>array(0, 1), 4=>array(0, 0), 5=>array(0, 1), 6=>array(0, 1)),
'dest'=>array(1,3),
),
'offer'=>array(
'state'=>array('new'=>array(1, 0), 0=>array(0, 0), 1=>array(1, 0), 3=>array(0, 0), 4=>array(0, 0), 5=>array(0, 0), 6=>array(1, 0)),
'dest'=>5,
),
'reject'=>array(
'state'=>array('new'=>array(0, 0), 0=>array(0, 0), 1=>array(0, 0), 3=>array(0, 0), 4=>array(0, 0), 5=>array(0, 1), 6=>array(0, 0)),
'dest'=>6,
),
'cancel'=>array(
'state'=>array('new'=>array(0, 0), 0=>array(0, 0), 1=>array(1, 1), 3=>array(0, 0), 4=>array(0, 0), 5=>array(0, 0), 6=>array(0, 0)),
'dest'=>1,
),
);
Без комментариев.
−108
+ (NSUInteger)tagExpensiveCandyAnimationInteger:(NSUInteger)tagSprite
{
NSUInteger animationTag;
if(tagSprite == 2001)
{
animationTag = 2101;
}
else if(tagSprite == 2002)
{
animationTag = 2102;
}
else if(tagSprite == 2003)
{
animationTag = 2103;
}
else if(tagSprite == 2004)
{
animationTag = 2104;
}
else if(tagSprite == 2005)
{
animationTag = 2105;
}
else if(tagSprite == 2006)
{
animationTag = 2106;
}
else if(tagSprite == 2007)
{
animationTag = 2107;
}
else if(tagSprite == 2008)
{
animationTag = 2108;
}
else if(tagSprite == 2009)
{
animationTag = 2109;
}
else if(tagSprite == 2010)
{
animationTag = 2110;
}
else if(tagSprite == 2011)
{
animationTag = 2111;
}
else if(tagSprite == 2012)
{
animationTag = 2112;
}
return animationTag;
}
Того же автора:)
+80
thread = new Thread() {
@Override
public void run() {
try {
while( !dataProcessor.isFinished() ) {
dataProcessor.execute();
Thread.sleep( 60 * 1000L );
}
} catch ( Throwable t ) {
logger.fatal( "Fatal error in daemon thread", t );
}
}
};
thread.run();
Вот такое оно параллельное выполнение. Задачка для догадливых.
+166
#ifdef _UNICODE
typedef wchar_t char_t;
namespace std
{
typedef wstring string_t;
typedef wistream istream_t;
typedef wostream ostream_t;
typedef wifstream ifstream_t;
typedef wofstream ofstream_t;
typedef wostringstream ostringstream_t;
typedef wistringstream istringstream_t;
typedef wstringstream stringstream_t;
}
#else // MBCS or SBCS
typedef char char_t;
namespace std
{
typedef istream istream_t;
typedef ostream ostream_t;
typedef ifstream ifstream_t;
typedef ofstream ofstream_t;
typedef string string_t;
typedef ostringstream ostringstream_t;
typedef istringstream istringstream_t;
typedef stringstream stringstream_t;
}
#endif // _UNICODE
Продолжаю разребать мега-ровный-код убер-чётких-кодеров.
В этой серии:
1. Иньекции в чужой namespace (погладь std сцуко)
2. Windows[ANSI/UNICODE] == C++[std::string/std:wstring], кодировко-зависимый-независимый код
3. Читайте матчасть std::basic_string<char> == std::string
+166
//Класс для генерации кнопок перелистывания страниц
class Pages {
//Если пользователь на англ версии сайта и он на первой странице, генерируем кнопку "Next page"
public function GeneratePage1En() {
$this->NextPageHTML = "<a id=\"pg-next\" class=\"pg-next\" href=\"{$this->Se}.php?Page=2&Q={$this->Question}&D={$this->Domain}&Td={$this->Typedate}\">Next page</a>";
}
//Если пользователь на рус версии сайта и он на первой странице, генерируем кнопку "Следующая страница"
public function GeneratePage1Ru() {
$this->NextPageHTML = "<a id=\"pg-next\" href=\"{$this->Se}.php?Page=2&Q={$this->Question}&D={$this->Domain}&Td={$this->Typedate}\">Следущая страница</a>";
}
//Если пользователь на англ версии сайта и он на >2 странице генерируем кнопку "Next Page" и "Previous Page"
public function GeneratePagesEn($Page) {
$this->PrevPageHTML = "<a id=\"pg-prev\" class=\"pg-prev\" href=\"{$this->Se}.php?Page={$this->PrevPage}&Q={$this->Question}&D={$this->Domain}&Td={$this->Typedate}\">Previous page</a>";
$this->NextPageHTML = "<a id=\"pg-next\" class=\"pg-next\" href=\"{$this->Se}.php?Page={$this->NextPage}&Q={$this->Question}&D={$this->Domain}&Td={$this->Typedate}\">Next page</a>";
}
//Если пользователь на рус версии сайта и он на >2 странице генерируем кнопку "Следующая страница" и "Предыдущая страница"
public function GeneratePagesRu($Page) {
$this->PrevPageHTML = "<a id=\"pg-prev\" class=\"pg-prev\" href=\"{$this->Se}.php?Page={$this->PrevPage}&Q={$this->Question}&D={$this->Domain}&Td={$this->Typedate}\">Предыдущая страница</a>";
$this->NextPageHTML = "<a id=\"pg-next\" class=\"pg-next\" href=\"{$this->Se}.php?Page={$this->NextPage}&Q={$this->Question}&D={$this->Domain}&Td={$this->Typedate}\">Следующая страница</a>";
}
}
Недавно увидел такую вот реализацию "листания" страниц в блоге.
Применение довольно простое. Сначала идет несколько проверок (на какой пользователь странице и какая у него версия сайта - рус или англ), и уже исходя от этого, генерируются нужные кнопки (вызывается нужная функция).
Из особенностей - максимально кривое использование возможностей ООП))