- 1
$select->where('target_table.param IN (' . implode(',', array_map(create_function('$e', '{return "\'$e\'";}'), $entities)) . ')');
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+167
$select->where('target_table.param IN (' . implode(',', array_map(create_function('$e', '{return "\'$e\'";}'), $entities)) . ')');
Недавно наткнулся на такое :)
+84
for (int hasFirstPass = 0; hasFirstPass <= 1; ++hasFirstPass) {
for (int firstPassOffsetLeft = 0; firstPassOffsetLeft <= hasFirstPass; ++firstPassOffsetLeft) {
for (int firstPassOffsetRight = 0; firstPassOffsetRight <= hasFirstPass; ++firstPassOffsetRight) {
for (int firstPassOffsetTop = 0; firstPassOffsetTop <= hasFirstPass * 2; ++firstPassOffsetTop) {
for (int firstPassOffsetBottom = 0; firstPassOffsetBottom <= hasFirstPass * 2; ++firstPassOffsetBottom) {
for (int hasSecondPass = 0; hasSecondPass <= 1; ++hasSecondPass) {
for (int secondPassOffsetLeft = 0; secondPassOffsetLeft <= hasSecondPass * 2; ++secondPassOffsetLeft) {
for (int secondPassOffsetRight = 0; secondPassOffsetRight <= hasSecondPass * 2; ++secondPassOffsetRight) {
for (int secondPassOffsetTop =
0; secondPassOffsetTop <= hasSecondPass; ++secondPassOffsetTop) {
for (int secondPassOffsetBottom =
0; secondPassOffsetBottom <= hasSecondPass; ++secondPassOffsetBottom) {
// ... some processing code
}
}
}
}
}
}
}
}
}
}
Есть некоторая обработка прямоугольника, проводящаяся в два этапа. Причём на первом этапе отступ от правого и левого края может быть не более 1, от верхнего и нижнего не более 2. На втором этапе наоборот. Каждый из этапов может отсутствовать, в таком случае естественно перебирать варианты отступа для этого этапа не нужно.
Этот код перебирает все возможные варианты такой обработки.
−101
#TROLOLO GENERATOR!
def trololo(x):
print 'tro'+('lo'*x)
trololo(100)
Если нужно потроллить!
+168
###########################################################################################################
# Проверка переменных
###########################################################################################################
function check($str) {
$str = htmlentities(trim($str), ENT_QUOTES, 'UTF-8');
$str = nl2br($str);
$str = strtr($str, array (
chr(0)=> '',
chr(1)=> '',
chr(2)=> '',
chr(3)=> '',
chr(4)=> '',
chr(5)=> '',
chr(6)=> '',
chr(7)=> '',
chr(8)=> '',
chr(9)=> '',
chr(10)=> '',
chr(11)=> '',
chr(12)=> '',
chr(13)=> '',
chr(14)=> '',
chr(15)=> '',
chr(16)=> '',
chr(17)=> '',
chr(18)=> '',
chr(19)=> '',
chr(20)=> '',
chr(21)=> '',
chr(22)=> '',
chr(23)=> '',
chr(24)=> '',
chr(25)=> '',
chr(26)=> '',
chr(27)=> '',
chr(28)=> '',
chr(29)=> '',
chr(30)=> '',
chr(31)=> ''
));
$str = str_replace("\'", "'", $str);
$str = str_replace('\\', "\", $str);
$str = str_replace("|", "I", $str);
$str = str_replace("||", "I", $str);
$str = str_replace("/\\\$/", "$", $str);
$str = mysql_real_escape_string($str);
return $str;
}
Лепота)
+163
class Cache {
var $a = 0;
function set($t) {
$this->a = $this->a+$t;
}
}
class Core {
function a() {
return Cache::set(3);
}
}
$Core = new Core;
echo $Core->a();
Нашел у себя на форуме. И вот где-то же такие работают..
+157
/**
* Получить список NEW5
*
* @return array список событий
*/
public function getLastForBlockNew($cat_tc_id = NULL)
{
$max_name_len = 41;
$sql = "SELECT
a.d_id,
CONCAT(a.d_sname, ' ', a.d_name, ' ', a.d_fname) as d_name,
SUBSTR(a.d_description, 0, 30) as d_description,
a.d_rating,
c.c_name_url,
b.rg_name_url,
'".Application_Url_Maker::makeUrl(array(), 'sub-domain1')."' as domain
FROM customers a
LEFT JOIN cities c ON c.c_id=a.d_c_id
LEFT JOIN regions b ON b.rg_id=c.c_rg_id
WHERE a.d_rating is not NULL
ORDER BY RAND()
LIMIT 5
";
$query[-1] = $this->querycached($sql);
$sql = "SELECT
a.h_id,
a.h_name_ru,
SUBSTR(a.h_description, 0, 30) as h_description,
a.h_rating,
c.c_name_url,
b.rg_name_url,
'".Application_Url_Maker::makeUrl(array(), 'sub-domain2')."' as domain,
h_lat,
h_lon,
h_address,
h_phones,
d.hs_name_url
FROM hospitals a
LEFT JOIN cities c ON c.c_id=a.h_c_id
LEFT JOIN regions b ON b.rg_id=c.c_rg_id
LEFT JOIN item_specializations d ON d.hs_id=a.h_hs_id
WHERE a.h_rating is not NULL
ORDER BY RAND()
LIMIT 5
";
$query[1] = $this->querycached($sql);
$tc_ids = $this->db->fetchAll("select tc_id, tc_name_subdomain from type_catalogs where tc_id<>1");
foreach($tc_ids as $v){
$sql = "SELECT
a.cat_id,
a.cat_name_ru,
SUBSTR(a.cat_description, 0, 30) as cat_description,
a.cat_rating,
c.c_name_url,
b.rg_name_url,
'".Application_Url_Maker::makeUrl(array(), $v['tc_name_subdomain'])."' as domain,
cat_lat,
cat_lon,
cat_address,
cat_phones
FROM catalogs a
LEFT JOIN cities c ON c.c_id=a.cat_c_id
LEFT JOIN regions b ON b.rg_id=c.c_rg_id
WHERE a.cat_tc_id=? and a.cat_rating is not NULL
ORDER BY RAND()
LIMIT 5
";
$query[$v['tc_id']] = $this->querycached($sql, array($v['tc_id']));
}
foreach($query as $k=>$v){
foreach($v as $k1=>$v1){
if(isset($v1['cat_name_ru']) && mb_strlen($v1['cat_name_ru']) > $max_name_len){
$query[$k][$k1]['cat_name_ru'] = mb_substr($v1['cat_name_ru'], 0, $max_name_len).'...';
}
elseif(isset($v1['h_name_ru']) && mb_strlen($v1['h_name_ru']) > $max_name_len){
$query[$k][$k1]['h_name_ru'] = mb_substr($v1['h_name_ru'], 0, $max_name_len).'...';
}
}
}
return $query;
}
+144
<?php
class Event {
private static $_instance = NULL;
protected $_events_pool = array();
public static function getInstance() {
if (self::$_instance === NULL) {
$class = __CLASS__;
self::$_instance = new $class;
}
return self::$_instance;
}
private function __construct() { }
public function connect($event, $callback, array $params = null) {
$this->_events_pool[$event] = array(
'callback' => $callback,
'params' => $params,
);
return $this;
}
public function clear($event = NULL) {
if ($event === NULL) {
$this->_events_pool = array();
} else {
foreach ($this->_events_pool as $id => $_event) {
if ($_event['event'] === $event) {
$this->_events_pool[$id] = NULL;
}
}
}
}
public function emit($events = NULL) {
if ($events === NULL) {
$events = array_keys($this->_events_pool);
} else {
$events = (is_array($events)) ? $events : array($events);
}
foreach ($events as $event) {
foreach ($this->_events_pool as $id => $item) {
if ($id === $event) {
$this->call($this->_events_pool[$id]['callback']);
}
}
}
}
protected function call($class_name, $method_name = NULL, array $params = array(), array $class_params = array()) {
$_method = ($method_name === NULL) ? $class_name : array($class_name, $method_name);
call_user_func_array($_method, $params);
}
}
−117
my $arr=[];
my $res=$dbr->selectrow_arrayref("SELECT DISTINCT obj.value
FROM obj
INNER JOIN ...
INNER JOIN ...
INNER JOIN ...
INNER JOIN ...
INNER JOIN ...
WHERE .....
сложный, но не интересный SQL-запрос к наскольким таблицам под лям записей в каждом
...");
arm_ls.lsid IN ($ls_str)
foreach $row (@$res)
{
push(@$arr,$row->[0]) if (!grep(/^$row->[0]$/,@$arr));
}
my $sum=@$arr;
return $sum;
Нашел тут в одном проекте. Теперь хочу поделиться с вами великолепным способом получения числа уникальных значений из таблицы.
В этот способ научит вас использовать всю мощь перла.
+155
/**
* Обновление информации о пользователе
*
* @param integer $user_id
* @param array $data
* @return Zend_Db_Statement_Pdo
*/
public function updateProfile($user_id, $data)
{
// TODO: сделать человеческую валидацию
$params = $keys = array();
if ($data['login'] !== NULL) {
$keys[] = 'u_login = ?';
$params[] = $data['login'];
}
if (Zend_Validate::is($data['email'], 'EmailAddress')) {
$keys[] = 'u_email = ?';
$params[] = $data['email'];
}
if ($data['sname'] !== NULL) {
$keys[] = 'u_sname = ?';
$params[] = $data['sname'];
}
if ($data['name'] !== NULL) {
$keys[] = 'u_name = ?';
$params[] = $data['name'];
}
if ($data['fname'] !== NULL) {
$keys[] = 'u_fname = ?';
$params[] = $data['fname'];
}
if ($data['birthdate'] !== NULL) {
$keys[] = 'u_birthdate = ?';
$params[] = $data['birthdate'];
} else {
$keys[] = 'u_birthdate = NULL';
}
if ($data['city'] !== NULL) {
$keys[] = 'u_c_id = ?';
$params[] = (int) $data['city'];
}
if ($data['info'] !== NULL) {
$keys[] = 'u_info = ?';
$params[] = $data['info'];
}
if ($data['sign'] !== NULL) {
$keys[] = 'u_sign = ?';
$params[] = $data['sign'];
}
if ($data['sex'] === 'M' OR $data['sex'] === 'F') {
$keys[] = 'u_sex = ?';
$params[] = $data['sex'];
}
if ($data['subscribe'] === 'on' AND ($data['subtype'] === 'T' OR $data['subtype'] === 'H')) {
$keys[] = 'u_subscribed = ?';
$params[] = $data['subtype'] === 'T' ? 1 : 2;
} else {
$keys[] = 'u_subscribed = ?';
$params[] = 0;
}
$sql = 'UPDATE users SET ' . implode(', ', $keys) . ' WHERE u_id = ' . (int) $user_id;
$query = $this->db->query($sql, $params);
$this->clearUserCache($user_id);
return $query;
}
+172
<?
@session_start();
$fini=rand(0,9);
if($fini==1){
$_SESSION['idi']='ZM55PKL216';
echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka1.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
if($fini==2){
$_SESSION['idi']='2K1P6LZ55M';
echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka2.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
if($fini==3){
$_SESSION['idi']='LK561MP5Z2';
echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka3.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
if($fini==4){
$_SESSION['idi']='65ZP1MLK25';
echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka4.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
if($fini==5){
$_SESSION['idi']='552P6LM1ZK';
echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka5.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
if($fini==6){
$_SESSION['idi']='ZP2M615LK5';
echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka6.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
if($fini==7){
$_SESSION['idi']='KM5P2Z615L';
echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka7.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
if($fini==8){
$_SESSION['idi']='2KP5Z16L5M';
echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka8.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
if($fini==9){
$_SESSION['idi']='PKM15Z25L6';
echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka9.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
if($fini==0){
$_SESSION['idi']='6ZP5L25M1K';
echo"<div style='position:absolute; background-image:url(images/proverochnoe%20chislo/proverka10.png); width:112px; height:30; left: 390px; top: 260px;'></div>";}
?>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<div style="position:absolute; top:-10px; left:25px; width: 340px; height: 49px; z-index:8;"><font size="+2" color="#333399" style="position:absolute; top:236px; left:-5px; width: 284px;">Контрольное значение для ячейки значение:</font>
</div>
Содержимое файла "kontrolnoe znachenie.php".
Великий и ужасный "генератор капчи". Особая прелесть в том, что файл начинается с пустой строки, а потом уже идет <?@session_start(). Кто сталкивался с проблемой "Headers are already sent" поймет, поймет также почему автор наивно пытается исправить эту проблему с помощью @.
Продолжение серии: #4101, #4100.